Skip to content

Commit be4f535

Browse files
committed
wip: add linting, fix tests
1 parent 42781d6 commit be4f535

16 files changed

+454
-129
lines changed

.eslintrc

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"extends": [
3+
"eslint:recommended",
4+
"plugin:react/recommended",
5+
"plugin:react-hooks/recommended"
6+
],
7+
"plugins": ["react", "react-hooks"],
8+
"parserOptions": {
9+
"ecmaVersion": 2020,
10+
"sourceType": "module",
11+
"ecmaFeatures": {
12+
"jsx": true
13+
}
14+
},
15+
"env": {
16+
"browser": true,
17+
"es2020": true
18+
},
19+
"rules": {
20+
"react/react-in-jsx-scope": "off"
21+
}
22+
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
# production
1212
/build
13+
/dist
1314

1415
# misc
1516
.DS_Store

.prettierrc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
22
"printWidth": 100,
3-
"tabWidth": 2
3+
"tabWidth": 2,
4+
"trailingComma": "es5"
45
}

__tests__/components/CodeWidget.test.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ describe("CodeWidget", () => {
99
const onChange = (value) => {
1010
return value;
1111
};
12-
render(<CodeWidget code={code} onChange={onChange} />);
12+
render(<CodeWidget code={code} onChange={onChange} initialTab="editor" />);
1313
});
1414
});
Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
3+
import { createMemoryRouter, RouterProvider } from "react-router-dom";
34

45
import CommentsPanel from "../../src/components/CommentsPanel";
56

67
describe("CommentsPanel", () => {
78
test("placeholder", () => {
8-
render(<CommentsPanel jobId="99999" />);
9+
const router = createMemoryRouter(
10+
[
11+
{
12+
path: "/:collabId/jobs/:jobId",
13+
element: <CommentsPanel jobId="99999" />,
14+
},
15+
],
16+
{ initialEntries: ["/my-collab/jobs/99999"] }
17+
);
18+
19+
render(<RouterProvider router={router} />);
920
});
1021
});
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
33

4-
import CreateJobDialog from "../../src/components/CreateJobDialog";
4+
import CreateJobForm from "../../src/components/CreateJobForm";
55

6-
describe("CreateJobDialog", () => {
6+
describe("CreateJobForm", () => {
77
test("placeholder", () => {});
88
});

__tests__/components/FilesPanel.test.jsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
3+
import { createMemoryRouter, RouterProvider } from "react-router-dom";
34

45
import FilesPanel from "../../src/components/FilesPanel";
56

@@ -9,6 +10,17 @@ describe("FilesPanel", () => {
910
repository: "A file repository",
1011
files: [],
1112
};
12-
render(<FilesPanel label="Output data" dataset={mockDataset} />);
13+
14+
const router = createMemoryRouter(
15+
[
16+
{
17+
path: "/:collabId/jobs/:jobId",
18+
element: <FilesPanel label="Output data" dataset={mockDataset} />,
19+
},
20+
],
21+
{ initialEntries: ["/my-collab/jobs/1234"] }
22+
);
23+
24+
render(<RouterProvider router={router} />);
1325
});
1426
});

__tests__/components/JobDetail.test.jsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
3+
import { createMemoryRouter, RouterProvider } from "react-router-dom";
34

4-
import { BrowserRouter } from "react-router-dom";
5-
6-
import JobDetail from "../../src/components/JobDetail";
5+
import JobDetailRoute from "../../src/routes/job-detail";
76

87
describe("JobDetail", () => {
98
test("placeholder", () => {
@@ -29,12 +28,12 @@ describe("JobDetail", () => {
2928
key4: "value4",
3029
},
3130
};
32-
// Because JobDetail contains a RouterLink we need
33-
// to wrap it in a Router
34-
render(
35-
<BrowserRouter>
36-
<JobDetail job={job} collab="my-collab" />
37-
</BrowserRouter>
31+
32+
const router = createMemoryRouter(
33+
[{ path: "/:collabId/jobs/:jobId", element: <JobDetailRoute />, loader: () => job }],
34+
{ initialEntries: ["/my-collab/jobs/1234"] }
3835
);
36+
37+
render(<RouterProvider router={router} />);
3938
});
4039
});

__tests__/components/JobList.test.jsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
3+
import { createMemoryRouter, RouterProvider } from "react-router-dom";
34

4-
import JobList from "../../src/components/JobList";
5+
import JobListRoute from "../../src/routes/jobs";
56

67
describe("JobList", () => {
78
test("placeholder", () => {
8-
render(<JobList jobs={[]} collab="my-collab" />);
9+
const router = createMemoryRouter(
10+
[{ path: "/:collabId/jobs/", element: <JobListRoute />, loader: () => [] }],
11+
{ initialEntries: ["/my-collab/jobs/"] }
12+
);
13+
14+
render(<RouterProvider router={router} />);
915
});
1016
});
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
import { describe, expect, test, vi } from "vitest";
22
import { render, screen, getByRole, fireEvent, waitFor } from "@testing-library/react";
3+
import { createMemoryRouter, RouterProvider } from "react-router-dom";
34

4-
import ProjectList from "../../src/components/ProjectList";
5+
import ProjectListRoute from "../../src/routes/projects";
56

67
describe("ProjectList", () => {
78
test("placeholder", () => {
8-
render(<ProjectList projects={[]} />);
9+
const router = createMemoryRouter(
10+
[{ path: "/:collabId/projects/", element: <ProjectListRoute />, loader: () => [] }],
11+
{ initialEntries: ["/fake-collab/projects/"] }
12+
);
13+
14+
render(<RouterProvider router={router} />);
915
});
1016
});

0 commit comments

Comments
 (0)