(t *testing.T)
| 160 | } |
| 161 | |
| 162 | func TestInjectionUserAppearance(t *testing.T) { |
| 163 | t.Parallel() |
| 164 | |
| 165 | siteFS := fstest.MapFS{ |
| 166 | "index.html": &fstest.MapFile{ |
| 167 | Data: []byte("{{ .UserAppearance }}"), |
| 168 | }, |
| 169 | } |
| 170 | db, _ := dbtestutil.NewDB(t) |
| 171 | handler, err := site.New(&site.Options{ |
| 172 | Telemetry: telemetry.NewNoop(), |
| 173 | Database: db, |
| 174 | SiteFS: siteFS, |
| 175 | }) |
| 176 | require.NoError(t, err) |
| 177 | |
| 178 | user := dbgen.User(t, db, database.User{}) |
| 179 | ctx := context.Background() |
| 180 | _, err = db.UpdateUserThemePreference(ctx, database.UpdateUserThemePreferenceParams{ |
| 181 | UserID: user.ID, |
| 182 | ThemePreference: "dark-tritan", |
| 183 | }) |
| 184 | require.NoError(t, err) |
| 185 | _, err = db.UpdateUserThemeMode(ctx, database.UpdateUserThemeModeParams{ |
| 186 | UserID: user.ID, |
| 187 | ThemeMode: string(codersdk.ThemeModeSync), |
| 188 | }) |
| 189 | require.NoError(t, err) |
| 190 | _, err = db.UpdateUserThemeLight(ctx, database.UpdateUserThemeLightParams{ |
| 191 | UserID: user.ID, |
| 192 | ThemeLight: "light-tritan", |
| 193 | }) |
| 194 | require.NoError(t, err) |
| 195 | _, err = db.UpdateUserThemeDark(ctx, database.UpdateUserThemeDarkParams{ |
| 196 | UserID: user.ID, |
| 197 | ThemeDark: "dark-tritan", |
| 198 | }) |
| 199 | require.NoError(t, err) |
| 200 | _, err = db.UpdateUserTerminalFont(ctx, database.UpdateUserTerminalFontParams{ |
| 201 | UserID: user.ID, |
| 202 | TerminalFont: string(codersdk.TerminalFontFiraCode), |
| 203 | }) |
| 204 | require.NoError(t, err) |
| 205 | _, token := dbgen.APIKey(t, db, database.APIKey{ |
| 206 | UserID: user.ID, |
| 207 | ExpiresAt: time.Now().Add(time.Hour), |
| 208 | }) |
| 209 | |
| 210 | r := httptest.NewRequest("GET", "/", nil) |
| 211 | r.Header.Set(codersdk.SessionTokenHeader, token) |
| 212 | rw := httptest.NewRecorder() |
| 213 | |
| 214 | handler.ServeHTTP(rw, r) |
| 215 | require.Equal(t, http.StatusOK, rw.Code) |
| 216 | var got codersdk.UserAppearanceSettings |
| 217 | err = json.Unmarshal([]byte(html.UnescapeString(rw.Body.String())), &got) |
| 218 | require.NoError(t, err) |
| 219 | require.Equal(t, codersdk.UserAppearanceSettings{ |
nothing calls this directly
no test coverage detected