(t *testing.T)
| 1846 | } |
| 1847 | |
| 1848 | func TestUserTerminalFont(t *testing.T) { |
| 1849 | t.Parallel() |
| 1850 | |
| 1851 | // Single instance shared across all sub-tests. Each sub-test |
| 1852 | // creates its own non-admin user for isolation. |
| 1853 | adminClient := coderdtest.New(t, nil) |
| 1854 | firstUser := coderdtest.CreateFirstUser(t, adminClient) |
| 1855 | |
| 1856 | t.Run("valid font", func(t *testing.T) { |
| 1857 | t.Parallel() |
| 1858 | |
| 1859 | client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) |
| 1860 | |
| 1861 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) |
| 1862 | defer cancel() |
| 1863 | |
| 1864 | // given |
| 1865 | initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me) |
| 1866 | require.NoError(t, err) |
| 1867 | require.Equal(t, codersdk.TerminalFontName(""), initial.TerminalFont) |
| 1868 | |
| 1869 | // when |
| 1870 | updated, err := client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{ |
| 1871 | ThemePreference: "light", |
| 1872 | TerminalFont: "fira-code", |
| 1873 | }) |
| 1874 | require.NoError(t, err) |
| 1875 | |
| 1876 | // then |
| 1877 | require.Equal(t, codersdk.TerminalFontFiraCode, updated.TerminalFont) |
| 1878 | }) |
| 1879 | |
| 1880 | t.Run("unsupported font", func(t *testing.T) { |
| 1881 | t.Parallel() |
| 1882 | |
| 1883 | client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID) |
| 1884 | |
| 1885 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) |
| 1886 | defer cancel() |
| 1887 | |
| 1888 | // given |
| 1889 | initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me) |
| 1890 | require.NoError(t, err) |
| 1891 | require.Equal(t, codersdk.TerminalFontName(""), initial.TerminalFont) |
| 1892 | |
| 1893 | // when |
| 1894 | _, err = client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{ |
| 1895 | ThemePreference: "light", |
| 1896 | TerminalFont: "foobar", |
| 1897 | }) |
| 1898 | |
| 1899 | // then |
| 1900 | require.Error(t, err) |
| 1901 | }) |
| 1902 | |
| 1903 | t.Run("undefined font is not ok", func(t *testing.T) { |
| 1904 | t.Parallel() |
| 1905 |
nothing calls this directly
no test coverage detected