test(server-nestjs): migrate Registry client spec to MSW + @msw/data - #2671
test(server-nestjs): migrate Registry client spec to MSW + @msw/data#2671shikanime wants to merge 1 commit into
Conversation
Registry testing utils use @msw/data Collection for faker-seeded Harbor projects, robots, quotas, members, repositories. Handlers split into per- resource subfunctions. makeRobotPermissions() extracted as factory. Refs #2655 Co-authored-by: Automata <[email protected]> Signed-off-by: Shikanime Deva <[email protected]> Signed-off-by: William Phetsinorath <[email protected]> Change-Id: I3040943080a743eb0d3e5a55f782a9766a6a6964
shikanime
left a comment
There was a problem hiding this comment.
Verdict : Commentaire
Bonne continuation de la série MSW — la structure par sous-handlers est claire. Deux points non bloquants : la vérification du corps du PUT retentions a disparu, et quelques toMatchObject affaiblissent les assertions.
| const base = `${HARBOR_INTERNAL_URL}/api/v2.0` | ||
|
|
||
| return [ | ||
| http.put(`${base}/retentions/:id`, () => new HttpResponse(null, { status: 200 })), |
There was a problem hiding this comment.
[⚪ Suggestion] Le PUT /retentions/:id répond 200 sans persister ni vérifier le corps : l'ancien mock affirmait request.json() === policy. La garde est perdue — capturer le corps dans la collection retentions restaurerait la vérification.
| const result = await service.ensureProject('myproj', -1) | ||
|
|
||
| expect(result).toEqual({ project_id: 123, metadata: {} }) | ||
| expect(result).toMatchObject({ project_id: 123, metadata: {} }) |
There was a problem hiding this comment.
[🟡 Nit] toMatchObject en remplacement de toEqual : si le handler renvoie des champs supplémentaires, l'assertion passe silencieusement. Acceptable le temps de la migration, à surveiller.
| ] | ||
| } | ||
|
|
||
| export function makeRegistryHandlers(db: Db): HttpHandler[] { |
There was a problem hiding this comment.
[✨ Éloge] Découpage par sous-ressources + validation zod des corps : l'émulation Harbor gagne en fidélité et les écarts de contrat deviennent explicites.
Migrate Registry client spec from inline MSW handlers to @msw/data-based factories.
Stacking on: PR #2670
Refs #2655