da1f9437abbdbc5a7231a5fc786f75656271fd30
- Extract Express app creation into src/createApp.js to enable testing without starting the server
- Add Jest, Supertest, test helpers (createTestApp, auth token generator)
- Write 14 integration tests for skydive/jumps: auth protection, CRUD, ownership checks
Bugs caught and fixed by the test suite:
- MongoDB models: author field typed as Schema.Types.UUID (Mongoose 6 rejects string UUIDs) → changed to String
- Jump.toJSONFor: called toProfileJSONFor on a UUID string → guarded with typeof check
- exceptions.handler: used err.statusCode but express-jwt throws err.status → returns 500 on 401 errors
- Jump.count(query): deprecated Mongoose method was ignoring the filter → replaced with countDocuments
- jumps.routes GET /: $or query included non-schema field "title" stripped by strictQuery, leaving {} (match-all) → replaced with slug/lieu search
- $regex: was passing a JS RegExp object which serializes to {} in MongoDB → now passes raw string
AdAstra_API
API pour l'application Ad Astra
Installation rapide
# Initialisation (applique les migrations, seed roles → création admin interactive → seed articles)
# La commande suivante applique d'abord les migrations nécessaires.
npm run setup:api
Installation manuelle
# Appliquer les migrations
npx sequelize-cli db:migrate
# Exécuter le seeder des articles
npx sequelize-cli db:seed --seed 20251126-add-roles.js
# Créer un utilisateur Admin
npm run create:user
# Exécuter le seeder des articles
npx sequelize-cli db:seed --seed 20251127-add-articles.js
Migration
# Appliquer les migrations
npx sequelize-cli db:migrate
# Voir le statut des migrations
npx sequelize-cli db:migrate:status
# Annuler les migrations
npx sequelize-cli db:migrate:undo:all
Seeder
# Exécuter tous les seeders
npx sequelize-cli db:seed:all
# Exécuter un seeder spécifique
npx sequelize-cli db:seed --seed 20251127-add-articles.js
# Annuler tous les seeders
npx sequelize-cli db:seed:undo:all
# Annuler un seeder spécifique
npx sequelize-cli db:seed:undo --seed 20251127-add-articles.js
Start 'local' API server
# Appliquer les migrations
npm run local
# Exécuter le seeder des articles
npx sequelize-cli db:seed --seed 20251126-add-roles.js
# Créer un utilisateur Admin
npm run create:user
# Exécuter le seeder des articles
npx sequelize-cli db:seed --seed 20251127-add-articles.js
Description