Handle API loading, error, and empty states consistently (#367) #324
build.yml
on: pull_request
Frontend build
44s
Build contracts
3s
Test contracts
3s
Backend lint
30s
Backend tests
32s
Frontend lint
37s
Frontend tests
43s
Frontend production smoke test
51s
Annotations
26 errors and 16 warnings
|
Test contracts
This request has been automatically failed because it uses a deprecated version of `actions/cache: 0c45773b623bea8c8e75f6c82b208c3cf94ea4f9`. Please update your workflow to use v3/v4 of actions/cache to avoid interruptions. Learn more: https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/#actions-cache-v1-v2-and-actions-toolkit-cache-package-closing-down
|
|
Build contracts
This request has been automatically failed because it uses a deprecated version of `actions/cache: 0c45773b623bea8c8e75f6c82b208c3cf94ea4f9`. Please update your workflow to use v3/v4 of actions/cache to avoid interruptions. Learn more: https://github.blog/changelog/2024-12-05-notice-of-upcoming-releases-and-breaking-changes-for-github-actions/#actions-cache-v1-v2-and-actions-toolkit-cache-package-closing-down
|
|
Backend lint:
backend/src/audit-log/audit-log.controller.ts#L15
'ApiQuery' is defined but never used
|
|
Backend lint:
backend/src/app.module.ts#L53
'PuzzleForkModule' is defined but never used
|
|
Backend lint:
backend/src/app.module.ts#L5
'join' is defined but never used
|
|
Backend lint:
backend/src/api-key/api-key.controller.ts#L26
'Type' is defined but never used
|
|
Backend lint:
backend/src/api-key/api-key.controller.ts#L17
'ApiKeyStatus' is defined but never used
|
|
Backend lint:
backend/src/admin/admin.service.ts#L8
'LoginAdminDto' is defined but never used
|
|
Backend lint:
backend/src/admin/admin.module.ts#L13
'AdminRole' is defined but never used
|
|
Backend lint:
backend/src/activity/activity.controller.ts#L16
'ApiQuery' is defined but never used
|
|
Backend lint:
backend/src/activity/activity.controller.ts#L5
'UseGuards' is defined but never used
|
|
Backend lint:
backend/src/achievement/achievement.service.ts#L43
'achievement' is assigned a value but never used
|
|
Backend tests
Process completed with exit code 1.
|
|
Frontend lint
Process completed with exit code 1.
|
|
tests/useReferral.test.js > useReferral > getRewardTier > returns 10 tier for NaN invites:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:97:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > getRewardTier > returns 8 tier for NaN invites:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:97:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > getRewardTier > returns 5 tier for NaN invites:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:97:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > getRewardTier > returns 3 tier for NaN invites:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:97:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > getRewardTier > returns 0 tier for NaN invites:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:97:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > fetchReferralData > does nothing when no userId is provided:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:73:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > fetchReferralData > sets an error when the API call fails:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:59:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > fetchReferralData > sets loading and fetches referral data successfully:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:40:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/useReferral.test.js > useReferral > generateReferralLink > generates the correct referral link for a given user ID:
frontend/hooks/useApiQuery.js#L36
Error: No QueryClient set, use QueryClientProvider to set one
❯ useQueryClient ../node_modules/@tanstack/react-query/src/QueryClientProvider.tsx:18:10
❯ useBaseQuery ../node_modules/@tanstack/react-query/src/useBaseQuery.ts:53:17
❯ useQuery ../node_modules/@tanstack/react-query/src/useQuery.ts:46:9
❯ useApiQuery hooks/useApiQuery.js:36:10
❯ Module.useReferral hooks/useReferral.js:17:25
❯ tests/useReferral.test.js:24:43
❯ TestComponent ../node_modules/@testing-library/react/dist/pure.js:339:27
❯ renderWithHooks ../node_modules/react-dom/cjs/react-dom.development.js:15486:18
❯ mountIndeterminateComponent ../node_modules/react-dom/cjs/react-dom.development.js:20103:13
❯ beginWork ../node_modules/react-dom/cjs/react-dom.development.js:21626:16
|
|
tests/apiRoutes.test.js > useGameStore — route call sites > game and user routes hit /api/v1/*:
frontend/store/useGameStore.js#L257
TypeError: nfts is not iterable
❯ Object.addNFT store/useGameStore.js:257:30
❯ tests/apiRoutes.test.js:110:35
|
|
Frontend build
Process completed with exit code 1.
|
|
Frontend production smoke test
Process completed with exit code 1.
|
|
Backend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend lint
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0KXeVagAAAAAe8po3n89NTqr7QOK+LDULTVNQMzExMDAwMTA4MDExAEVkZ2U=
|
|
Backend lint
Failed to restore: Cache service responded with 400
|
|
Backend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Backend tests
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0KneVagAAAADkC5S46BBBQIcWefk5OdWMTVNQMzExMDAwMTA4MDI3AEVkZ2U=
|
|
Backend tests
Failed to restore: Cache service responded with 400
|
|
Frontend lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend lint
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0L3eVagAAAABhVzF+Jk38SoZb2IKdh3EvUEhYMzFFREdFMDUwNgBFZGdl
|
|
Frontend lint
Failed to restore: Cache service responded with 400
|
|
Frontend tests
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend tests
Failed to restore: Cache service responded with 400
|
|
Frontend build
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend build
Failed to save: <h2>Our services aren't available right now</h2><p>We're working to restore all services as soon as possible. Please check back soon.</p>0N3eVagAAAABnHr/n6Ls/RJMK1o9nUVYHQ0gxQUEyMDMwODEzMDM2AEVkZ2U=
|
|
Frontend build
Failed to restore: Cache service responded with 400
|
|
Frontend production smoke test
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332, actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Frontend production smoke test
Failed to restore: Cache service responded with 400
|