MCPcopy Index your code
hub / github.com/coder/coder / TestUserThemeMode

Function TestUserThemeMode

coderd/users_test.go:1927–2284  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1925}
1926
1927func TestUserThemeMode(t *testing.T) {
1928 t.Parallel()
1929
1930 adminClient := coderdtest.New(t, nil)
1931 firstUser := coderdtest.CreateFirstUser(t, adminClient)
1932
1933 t.Run("defaults to empty", func(t *testing.T) {
1934 t.Parallel()
1935
1936 client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID)
1937
1938 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
1939 defer cancel()
1940
1941 initial, err := client.GetUserAppearanceSettings(ctx, codersdk.Me)
1942 require.NoError(t, err)
1943 // A fresh user has never written any theme_* key. The GET handler
1944 // should return empty strings rather than error out.
1945 require.Equal(t, codersdk.ThemeModeUnset, initial.ThemeMode)
1946 require.Equal(t, "", initial.ThemeLight)
1947 require.Equal(t, "", initial.ThemeDark)
1948 })
1949
1950 t.Run("sync mode roundtrip", func(t *testing.T) {
1951 t.Parallel()
1952
1953 client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID)
1954
1955 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
1956 defer cancel()
1957
1958 updated, err := client.UpdateUserAppearanceSettings(ctx, codersdk.Me, codersdk.UpdateUserAppearanceSettingsRequest{
1959 ThemePreference: "dark-tritan",
1960 ThemeMode: codersdk.ThemeModeSync,
1961 ThemeLight: "light-tritan",
1962 ThemeDark: "dark-tritan",
1963 TerminalFont: codersdk.TerminalFontGeistMono,
1964 })
1965 require.NoError(t, err)
1966 require.Equal(t, codersdk.ThemeModeSync, updated.ThemeMode)
1967 require.Equal(t, "light-tritan", updated.ThemeLight)
1968 require.Equal(t, "dark-tritan", updated.ThemeDark)
1969
1970 // Fetched values should match.
1971 fetched, err := client.GetUserAppearanceSettings(ctx, codersdk.Me)
1972 require.NoError(t, err)
1973 require.Equal(t, codersdk.ThemeModeSync, fetched.ThemeMode)
1974 require.Equal(t, "light-tritan", fetched.ThemeLight)
1975 require.Equal(t, "dark-tritan", fetched.ThemeDark)
1976 })
1977
1978 t.Run("sync mode accepts any concrete theme per slot", func(t *testing.T) {
1979 t.Parallel()
1980
1981 client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID)
1982
1983 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
1984 defer cancel()

Callers

nothing calls this directly

Calls 9

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
ThemeModeTypeAlias · 0.92
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected