Skip to content

Commit e46329b

Browse files
committed
Get FE tests passing with real data!
1 parent 1bd9cec commit e46329b

File tree

5 files changed

+15064
-15
lines changed

5 files changed

+15064
-15
lines changed

site/package.json

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
{
2+
"name": "coder-v2",
3+
"description": "Coder V2 (Workspaces V2)",
4+
"repository": "https://github.com/coder/coder",
5+
"private": true,
6+
"scripts": {
7+
"postinstall": "yarn typegen",
8+
"build": "NODE_ENV=production webpack build --config=webpack.prod.ts",
9+
"build:analyze": "NODE_ENV=production webpack --profile --progress --json --config=webpack.prod.ts > out/stats.json && webpack-bundle-analyzer out/stats.json out",
10+
"check:all": "yarn format:check && yarn lint && yarn test",
11+
"chromatic": "chromatic",
12+
"dev": "webpack-dev-server --config=webpack.dev.ts",
13+
"format:check": "prettier --check '**/*.{css,html,js,json,jsx,md,ts,tsx,yaml,yml}'",
14+
"format:types": "prettier --write 'src/api/typesGenerated.ts'",
15+
"format:write": "prettier --write '**/*.{css,html,js,json,jsx,md,ts,tsx,yaml,yml}'",
16+
"lint": "jest --selectProjects lint",
17+
"lint:fix": "FIX=true yarn lint",
18+
"playwright:install": "playwright install",
19+
"playwright:install-deps": "playwright install-deps",
20+
"playwright:test": "playwright test --config=e2e/playwright.config.ts",
21+
"storybook": "start-storybook -p 6006",
22+
"storybook:build": "build-storybook",
23+
"test": "jest --selectProjects test",
24+
"test:coverage": "jest --selectProjects test --collectCoverage",
25+
"test:watch": "jest --selectProjects test --watch",
26+
"typegen": "xstate typegen 'src/**/*.ts'"
27+
},
28+
"dependencies": {
29+
"@emoji-mart/data": "^1.0.5",
30+
"@emoji-mart/react": "^1.0.1",
31+
"@fontsource/ibm-plex-mono": "4.5.10",
32+
"@fontsource/inter": "4.5.11",
33+
"@material-ui/core": "4.9.4",
34+
"@material-ui/icons": "4.5.1",
35+
"@material-ui/lab": "4.0.0-alpha.42",
36+
"@testing-library/react-hooks": "8.0.1",
37+
"@xstate/inspect": "0.6.5",
38+
"@xstate/react": "3.0.1",
39+
"axios": "0.26.1",
40+
"can-ndjson-stream": "1.0.2",
41+
"chart.js": "^3.5.0",
42+
"cron-parser": "4.5.0",
43+
"cronstrue": "2.11.0",
44+
"dayjs": "1.11.4",
45+
"emoji-mart": "^5.2.1",
46+
"formik": "^2.2.9",
47+
"front-matter": "4.0.2",
48+
"history": "5.3.0",
49+
"i18next": "21.9.1",
50+
"just-debounce-it": "3.0.1",
51+
"moment": "^2.29.4",
52+
"react": "18.2.0",
53+
"react-chartjs-2": "^4.3.1",
54+
"react-dom": "18.2.0",
55+
"react-helmet-async": "^1.3.0",
56+
"react-i18next": "11.18.4",
57+
"react-markdown": "8.0.3",
58+
"react-router-dom": "^6.3.0",
59+
"sourcemapped-stacktrace": "1.1.11",
60+
"swr": "1.3.0",
61+
"tzdata": "1.0.30",
62+
"uuid": "8.3.2",
63+
"xstate": "4.32.1",
64+
"xterm": "4.19.0",
65+
"xterm-addon-fit": "0.5.0",
66+
"xterm-addon-web-links": "0.6.0",
67+
"xterm-addon-webgl": "0.11.4",
68+
"xterm-for-react": "1.0.4",
69+
"yup": "0.32.11"
70+
},
71+
"devDependencies": {
72+
"@playwright/test": "1.24.1",
73+
"@pmmmwh/react-refresh-webpack-plugin": "0.5.7",
74+
"@storybook/addon-actions": "6.5.9",
75+
"@storybook/addon-essentials": "6.4.22",
76+
"@storybook/addon-links": "6.5.9",
77+
"@storybook/react": "6.4.22",
78+
"@testing-library/jest-dom": "5.16.4",
79+
"@testing-library/react": "^13.3.0",
80+
"@testing-library/user-event": "^14.4.3",
81+
"@types/express": "4.17.13",
82+
"@types/jest": "27.4.1",
83+
"@types/node": "14.18.22",
84+
"@types/react": "18.0.15",
85+
"@types/react-dom": "18.0.6",
86+
"@types/react-helmet": "6.1.5",
87+
"@types/semver": "^7.3.12",
88+
"@types/superagent": "4.1.15",
89+
"@types/uuid": "8.3.4",
90+
"@typescript-eslint/eslint-plugin": "5.31.0",
91+
"@typescript-eslint/parser": "5.31.0",
92+
"@xstate/cli": "0.3.0",
93+
"canvas": "^2.9.3",
94+
"chromatic": "6.7.1",
95+
"copy-webpack-plugin": "10.2.4",
96+
"css-loader": "6.7.1",
97+
"css-minimizer-webpack-plugin": "3.4.1",
98+
"eslint": "8.21.0",
99+
"eslint-config-prettier": "8.5.0",
100+
"eslint-import-resolver-alias": "1.1.2",
101+
"eslint-import-resolver-typescript": "3.3.0",
102+
"eslint-plugin-compat": "4.0.2",
103+
"eslint-plugin-import": "2.26.0",
104+
"eslint-plugin-jest": "26.7.0",
105+
"eslint-plugin-jsx-a11y": "6.6.1",
106+
"eslint-plugin-no-storage": "1.0.2",
107+
"eslint-plugin-react": "7.30.1",
108+
"eslint-plugin-react-hooks": "4.6.0",
109+
"html-webpack-plugin": "5.5.0",
110+
"jest": "27.5.1",
111+
"jest-canvas-mock": "2.4.0",
112+
"jest-junit": "14.0.0",
113+
"jest-runner-eslint": "1.0.0",
114+
"jest-websocket-mock": "2.3.0",
115+
"mini-css-extract-plugin": "2.6.1",
116+
"msw": "^0.45.0",
117+
"prettier": "2.7.1",
118+
"prettier-plugin-organize-imports": "3.0.0",
119+
"react-hot-loader": "4.13.0",
120+
"resize-observer": "^1.0.4",
121+
"semver": "^7.3.7",
122+
"sql-formatter": "8.2.0",
123+
"style-loader": "3.3.1",
124+
"ts-jest": "27.1.4",
125+
"ts-loader": "9.3.1",
126+
"ts-node": "10.9.1",
127+
"typescript": "4.7.4",
128+
"webpack": "5.74.0",
129+
"webpack-bundle-analyzer": "4.5.0",
130+
"webpack-cli": "4.10.0",
131+
"webpack-dev-server": "4.9.3"
132+
},
133+
"browserslist": [
134+
"chrome 66",
135+
"firefox 63",
136+
"edge 79",
137+
"safari 13.1"
138+
]
139+
}

site/src/api/typesGenerated.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,15 +183,6 @@ export interface CreateWorkspaceRequest {
183183
readonly parameter_values?: CreateParameterRequest[]
184184
}
185185

186-
<<<<<<< HEAD
187-
// From codersdk/workspaceresources.go
188-
export interface DERPRegion {
189-
readonly preferred: boolean
190-
readonly latency_ms: number
191-
}
192-
193-
||||||| parent of 1150cd02... agent: add StatsReporter
194-
=======
195186
// From codersdk/metrics.go
196187
export interface DAUEntry {
197188
readonly date: string
@@ -203,7 +194,12 @@ export interface DAUsResponse {
203194
readonly entries: DAUEntry[]
204195
}
205196

206-
>>>>>>> 1150cd02... agent: add StatsReporter
197+
// From codersdk/workspaceresources.go
198+
export interface DERPRegion {
199+
readonly preferred: boolean
200+
readonly latency_ms: number
201+
}
202+
207203
// From codersdk/features.go
208204
export interface Entitlements {
209205
readonly features: Record<string, Feature>

site/src/pages/UsersPage/UsersPage.test.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable @typescript-eslint/no-floating-promises */
22
import { fireEvent, screen, waitFor, within } from "@testing-library/react"
33
import { rest } from "msw"
4+
import { ResizeObserver } from "resize-observer"
45
import { Language as usersXServiceLanguage } from "xServices/users/usersXService"
56
import * as API from "../../api/api"
67
import { Role } from "../../api/typesGenerated"
@@ -20,6 +21,10 @@ import { permissionsToCheck } from "../../xServices/auth/authXService"
2021
import { Language as UsersPageLanguage, UsersPage } from "./UsersPage"
2122
import { Language as UsersViewLanguage } from "./UsersPageView"
2223

24+
Object.defineProperty(window, "ResizeObserver", {
25+
value: ResizeObserver,
26+
})
27+
2328
const suspendUser = async (setupActionSpies: () => void) => {
2429
// Get the first user in the table
2530
const users = await screen.findAllByText(/.*@coder.com/)

site/src/testHelpers/entities.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import * as TypesGen from "../api/typesGenerated"
44

55
export const MockGetDAUResponse: TypesGen.DAUsResponse = {
66
entries: [
7-
// For the time being, we don't test the canvas
8-
// generated by a rendered chart.
9-
// { date: "2022-08-27T00:00:00Z", daus: 1 },
10-
// { date: "2022-08-29T00:00:00Z", daus: 2 },
11-
// { date: "2022-08-30T00:00:00Z", daus: 1 },
7+
{ date: "2022-08-27T00:00:00Z", daus: 1 },
8+
{ date: "2022-08-29T00:00:00Z", daus: 2 },
9+
{ date: "2022-08-30T00:00:00Z", daus: 1 },
1210
],
1311
}
1412
export const MockSessionToken: TypesGen.LoginWithPasswordResponse = {

0 commit comments

Comments
 (0)