- commit
- 12f0fb8
- parent
- d184a79
- author
- Jacob Bolda
- date
- 2025-07-07 22:40:47 -0400 EDT
fix: examples and have them install starfx locally (#65)
9 files changed,
+54,
-34
+7,
-1
1@@ -25,7 +25,13 @@ jobs:
2 - name: checkout
3 uses: actions/checkout@v4
4
5- - name: npm install
6+ - name: npm install in starfx root
7+ run: npm install
8+
9+ - name: build starfx
10+ run: npm run build
11+
12+ - name: npm install (uses built starfx)
13 working-directory: ${{ matrix.example }}
14 run: npm install
15
+5,
-5
1@@ -10,13 +10,13 @@
2 "preview": "vite preview"
3 },
4 "dependencies": {
5- "react": "^18.2.0",
6- "react-dom": "^18.2.0",
7- "starfx": "^0.13.0"
8+ "react": "^19.1.0",
9+ "react-dom": "^19.1.0",
10+ "starfx": "file:../.."
11 },
12 "devDependencies": {
13- "@types/react": "^18.0.28",
14- "@types/react-dom": "^18.0.11",
15+ "@types/react": "^19.1.8",
16+ "@types/react-dom": "^19.1.6",
17 "@typescript-eslint/eslint-plugin": "^5.57.1",
18 "@typescript-eslint/parser": "^5.57.1",
19 "@vitejs/plugin-react": "^4.0.0",
+8,
-4
1@@ -5,16 +5,20 @@
2 "start": "parcel --host 0.0.0.0",
3 "build": "parcel build"
4 },
5+ "browserslist": "> 0.5%, last 2 versions, not dead",
6 "@parcel/resolver-default": {
7 "packageExports": true
8 },
9+ "alias": {
10+ "node:process": false
11+ },
12 "devDependencies": {
13- "parcel": "^2.11.0",
14+ "parcel": "^2.15.4",
15 "process": "^0.11.10"
16 },
17 "dependencies": {
18- "react": "^18.2.0",
19- "react-dom": "^18.2.0",
20- "starfx": "^0.13.0"
21+ "react": "^19.1.0",
22+ "react-dom": "^19.1.0",
23+ "starfx": "file:../.."
24 }
25 }
+1,
-0
1@@ -2,5 +2,6 @@ module.exports = {
2 presets: [
3 "@babel/preset-env",
4 ["@babel/preset-react", { runtime: "automatic" }],
5+ "@babel/preset-typescript",
6 ],
7 };
+5,
-1
1@@ -1,7 +1,11 @@
2-module.exports = {
3+export default {
4 testEnvironment: "jsdom",
5 transform: {
6 "^.+\\.(t|j)sx?$": "babel-jest",
7 },
8 setupFilesAfterEnv: ["<rootDir>/tests/setup.ts"],
9+ moduleNameMapper: {
10+ "^react$": "<rootDir>/node_modules/react",
11+ "^react-dom$": "<rootDir>/node_modules/react-dom",
12+ },
13 };
+12,
-11
1@@ -4,19 +4,20 @@
2 "test": "jest"
3 },
4 "dependencies": {
5- "react": "^18.2.0",
6- "react-dom": "^18.2.0",
7- "starfx": "^0.13.3"
8+ "starfx": "file:../.."
9 },
10 "devDependencies": {
11- "@babel/preset-env": "^7.23.9",
12- "@babel/preset-react": "^7.23.3",
13- "@testing-library/jest-dom": "^6.3.0",
14- "@testing-library/react": "^14.1.2",
15- "@testing-library/user-event": "^14.5.2",
16- "babel-jest": "^29.7.0",
17- "jest": "^29.7.0",
18- "jest-environment-jsdom": "^29.7.0",
19+ "@babel/core": "^7.28.0",
20+ "@babel/preset-env": "^7.28.0",
21+ "@babel/preset-react": "^7.27.1",
22+ "@babel/preset-typescript": "^7.27.1",
23+ "@testing-library/dom": "^10.4.0",
24+ "@testing-library/jest-dom": "^6.6.3",
25+ "@testing-library/react": "^16.3.0",
26+ "@testing-library/user-event": "^14.6.1",
27+ "babel-jest": "^30.0.4",
28+ "jest": "^30.0.4",
29+ "jest-environment-jsdom": "^30.0.4",
30 "whatwg-fetch": "^3.6.20"
31 }
32 }
R examples/tests-rtl/tests/app.test.ts =>
examples/tests-rtl/tests/app.test.tsx
+3,
-1
1@@ -1,3 +1,5 @@
2+import React from "react";
3+import "@testing-library/jest-dom";
4 import { expect, test } from "@jest/globals";
5 import { fireEvent, render, screen, waitFor } from "./utils";
6 import { fetchUsers } from "../src/api";
7@@ -20,7 +22,7 @@ test("fetches users", async () => {
8 id: 2,
9 name: "Ervin Howell",
10 },
11- ]),
12+ ])
13 );
14 yield* next();
15 });
R examples/tests-rtl/tests/utils.ts =>
examples/tests-rtl/tests/utils.tsx
+7,
-5
1@@ -1,10 +1,10 @@
2-import React from "react";
3-import { render } from "@testing-library/react";
4+import React, { type ReactElement } from "react";
5+import { render, type RenderOptions } from "@testing-library/react";
6 import { Provider } from "starfx/react";
7 import { schema } from "../src/api";
8 import { setupStore } from "../src/store";
9
10-const AllTheProviders = ({ children }) => {
11+const AllTheProviders = ({ children }: { children: React.ReactNode }) => {
12 const store = setupStore({});
13 return (
14 <Provider schema={schema} store={store}>
15@@ -13,8 +13,10 @@ const AllTheProviders = ({ children }) => {
16 );
17 };
18
19-const customRender = (ui, options) =>
20- render(ui, { wrapper: AllTheProviders, ...options });
21+const customRender = (
22+ ui: ReactElement,
23+ options?: Omit<RenderOptions, "wrapper">
24+) => render(ui, { wrapper: AllTheProviders, ...options });
25
26 // re-export everything
27 export * from "@testing-library/react";
+6,
-6
1@@ -10,16 +10,16 @@
2 "preview": "vite preview"
3 },
4 "dependencies": {
5- "react": "^18.2.0",
6- "react-dom": "^18.2.0",
7- "starfx": "^0.13.0"
8+ "react": "^19.1.0",
9+ "react-dom": "^19.1.0",
10+ "starfx": "file:../.."
11 },
12 "devDependencies": {
13- "@types/react": "^18.0.28",
14- "@types/react-dom": "^18.0.11",
15+ "@types/react": "^19.1.8",
16+ "@types/react-dom": "^19.1.6",
17 "@typescript-eslint/eslint-plugin": "^5.57.1",
18 "@typescript-eslint/parser": "^5.57.1",
19- "@vitejs/plugin-react": "^4.0.0",
20+ "@vitejs/plugin-react": "^4.6.0",
21 "eslint": "^8.38.0",
22 "eslint-plugin-react-hooks": "^4.6.0",
23 "eslint-plugin-react-refresh": "^0.3.4",