repos / starfx

a micro-mvc framework for react apps
git clone https://github.com/neurosnap/starfx.git

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
M .github/workflows/examples.yml
+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 
M examples/basic/package.json
+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",
M examples/parcel-react/package.json
+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 }
M examples/tests-rtl/babel.config.js
+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 };
M examples/tests-rtl/jest.config.js
+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 };
M examples/tests-rtl/package.json
+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";
M examples/vite-react/package.json
+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",