Shared test helper to enroll a node in API integration tests
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 84/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start with the six integration test files listed in the issue and compare their repeated join token, CSR, and enrollment setup. Read the testing helpers under apps/api/src/testing/ and the fleet enrollment entry points to identify what each test needs returned. Add the shared helper, update only those six tests, and run pnpm test:integration; done means it passes with the same test count and none of those tests imports fleet/infrastructure/.
Written by the indexing model from the issue text.
Description
What
Six integration tests outside the fleet module enroll a test node by importing fleet/infrastructure/ca/x509 directly to build a certificate signing request:
apps/api/src/modules/apps/application-domains-http.integration.spec.tsapps/api/src/modules/confirmations/confirmation-http.integration.spec.tsapps/api/src/modules/deployments/agent-actions-http.integration.spec.tsapps/api/src/modules/deployments/allocation-observations.integration.spec.tsapps/api/src/modules/deployments/deployment-pipeline.integration.spec.tsapps/api/src/modules/deployments/pipeline-store.integration.spec.ts
CLAUDE.md says modules never import each other's infrastructure/. Tests are not production code, but the repeated setup also duplicates the same steps: issue a join token, build a CSR, enroll.
Proposed change
Add a shared helper in apps/api/src/testing/ (for example enroll-test-node.ts) that issues a join token, builds the CSR, enrolls a node and returns what the tests need. Use it in the six tests above and remove their direct fleet/infrastructure imports. The tests inside fleet itself can keep theirs.
Done when
- None of the files listed above imports
../fleet/infrastructure/. pnpm test:integrationpasses with the same number of tests.- Nothing changes outside
src/testing/and the six tests.
Raised in the review of #290.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 1
- Avg merge
- 7h 17m
- Merged PRs (30d)
- 197
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from shipkeepdev/shipkeep
-
good first issue priority:P2 track:control-plane
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
shipkeepdev/shipkeep#212 ·
Maintainers usually reply within 1 day
-
enhancement good first issue priority:P3 track:web
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
shipkeepdev/shipkeep#144 ·
Maintainers usually reply within 1 day
-
documentation good first issue priority:P3 track:control-plane
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
shipkeepdev/shipkeep#143 ·
Maintainers usually reply within 1 day
-
enhancement good first issue priority:P3 track:control-plane
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
shipkeepdev/shipkeep#142 ·
Maintainers usually reply within 1 day
-
documentation good first issue priority:P3 track:control-plane
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
shipkeepdev/shipkeep#141 ·
Maintainers usually reply within 1 day
All issues in shipkeepdev/shipkeep
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
jeanibarz/knowledge-base-mcp-server#1268 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Koenkk/zigbee-herdsman-converters#13820 ·
Maintainers usually reply within 2 days
-
[prefer-expect-resolves] autofix leaves a stray ")" when the awaited expression is parenthesizedOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jest-community/eslint-plugin-jest#2052 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Wallet functions throws TypeError when the wallet has no account IDPossibly taken @Medhansh-741 claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
hiero-ledger/hiero-sdk-js#4781 · 1 comment ·
Maintainers usually reply within 1 day