From 859ac10a6424afa246f369de42f3764489b83cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20PAILHAREY?= <rpailharey@grandlyon.com> Date: Thu, 6 Apr 2023 08:50:43 +0000 Subject: [PATCH] feat: publicOthers category renamed genre --- scripts/data/structures.js | 18 ++++++------- .../services/categories.service.spec.ts | 16 ++++++------ ...96294337-others-categorie-renamed-genre.ts | 18 +++++++++++++ test/mock/services/structures.mock.service.ts | 26 +++++++++---------- 4 files changed, 48 insertions(+), 30 deletions(-) create mode 100644 src/migrations/scripts/1680596294337-others-categorie-renamed-genre.ts diff --git a/scripts/data/structures.js b/scripts/data/structures.js index 6298725cb..9de10021f 100644 --- a/scripts/data/structures.js +++ b/scripts/data/structures.js @@ -5,7 +5,7 @@ module.exports = { data: [ { _id: mongoose.Types.ObjectId('6001a35f16b08100062e415f'), - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-16T15:37:00.000Z', updatedAt: '2021-03-02T12:36:53.000Z', structureName: "Maison de l'Emploi (Feyzin)", @@ -164,7 +164,7 @@ module.exports = { handicaps: ['physicalDisability'], publicOthers: ['uniquementFemmes'], }, - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-16T10:19:00.000Z', updatedAt: '2020-12-16T10:19:00.000Z', structureName: 'Pôle emploi (Vénissieux)', @@ -270,7 +270,7 @@ module.exports = { }, { _id: mongoose.Types.ObjectId('6001a38516b08100062e4161'), - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-16T14:15:00.000Z', updatedAt: '2021-04-27T14:19:17.000Z', structureName: 'Centre social Quartier Vitalité', @@ -371,7 +371,7 @@ module.exports = { handicaps: ['physicalDisability'], publicOthers: ['uniquementFemmes'], }, - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-16T09:30:00.000Z', updatedAt: '2021-04-12T08:48:00.000Z', structureName: "L'Atelier Numérique", @@ -514,7 +514,7 @@ module.exports = { handicaps: ['physicalDisability'], publicOthers: ['uniquementFemmes'], }, - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-16T08:53:00.000Z', updatedAt: '2021-04-27T17:06:46.000Z', structureName: 'Cyber-base / MJC Louis Aragon', @@ -618,7 +618,7 @@ module.exports = { handicaps: ['physicalDisability'], publicOthers: ['uniquementFemmes'], }, - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-04T09:27:00.000Z', updatedAt: '2021-03-02T10:07:48.000Z', structureName: 'Oasis Informatique', @@ -730,7 +730,7 @@ module.exports = { handicaps: ['physicalDisability'], publicOthers: ['uniquementFemmes'], }, - freeWorkShop: 'Non', + freeWorkShop: false, createdAt: '2020-11-13T14:13:00.000Z', updatedAt: '2021-03-02T10:09:30.000Z', structureName: 'Le Son du Clic', @@ -848,7 +848,7 @@ module.exports = { pmrAccess: false, remoteAccompaniment: false, accountVerified: true, - freeWorkShop: 'Non', + freeWorkShop: false, nbComputers: 0, nbPrinters: 0, nbScanners: 0, @@ -917,7 +917,7 @@ module.exports = { pmrAccess: false, remoteAccompaniment: false, accountVerified: true, - freeWorkShop: 'Non', + freeWorkShop: false, nbComputers: 0, nbPrinters: 0, nbScanners: 0, diff --git a/src/categories/services/categories.service.spec.ts b/src/categories/services/categories.service.spec.ts index ee2726837..45657d400 100644 --- a/src/categories/services/categories.service.spec.ts +++ b/src/categories/services/categories.service.spec.ts @@ -36,29 +36,29 @@ describe('CategoriesService', () => { it('should findAll structures', async () => { const data: CreateCategories[] = [ - { id: 'publicOthers', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, - { id: 'publicOthers', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, + { id: 'categoryId', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, + { id: 'categoryId', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, ]; mockCategoriesModel.find.mockResolvedValueOnce(data); expect(await service.findAll()).toEqual(data); }); it('should findByApticId structures', async () => { const data: CreateCategories[] = [ - { id: 'publicOthers', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, - { id: 'publicOthers', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, + { id: 'categoryId', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, + { id: 'categoryId', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, ]; mockCategoriesModel.findOne.mockReturnThis(); mockCategoriesModel.select.mockReturnThis(); mockCategoriesModel.exec.mockResolvedValueOnce(data); - expect(await service.findByApticId('publicOthers')).toEqual(data); + expect(await service.findByApticId('categoryId')).toEqual(data); }); it('should findOneComplete structures', async () => { const data: CreateCategories[] = [ - { id: 'publicOthers', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, - { id: 'publicOthers', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, + { id: 'categoryId', theme: 'Public', name: 'test', modules: [{ id: 'Test', name: 'Text du test' }] }, + { id: 'categoryId', theme: 'Public', name: 'test2', modules: [{ id: 'Test2', name: 'Text du test test 2' }] }, ]; mockCategoriesModel.findOne.mockReturnThis(); mockCategoriesModel.exec.mockResolvedValueOnce(data); - expect(await service.findOneComplete('publicOthers')).toEqual(data); + expect(await service.findOneComplete('categoryId')).toEqual(data); }); }); diff --git a/src/migrations/scripts/1680596294337-others-categorie-renamed-genre.ts b/src/migrations/scripts/1680596294337-others-categorie-renamed-genre.ts new file mode 100644 index 000000000..b943b4523 --- /dev/null +++ b/src/migrations/scripts/1680596294337-others-categorie-renamed-genre.ts @@ -0,0 +1,18 @@ +import { Db } from 'mongodb'; +import { getDb } from '../migrations-utils/db'; + +export const up = async () => { + const db: Db = await getDb(); + await db.collection('categories').updateOne({ id: 'publicOthers' }, { $set: { id: 'genre', name: 'Genre' } }); + await db.collection('structures').updateMany({}, { $rename: { 'categories.publicOthers': 'categories.genre' } }); + + console.log('Update done: Categorie "Autres" -> "Genre"'); +}; + +export const down = async () => { + const db: Db = await getDb(); + await db.collection('categories').updateOne({ id: 'genre' }, { $set: { id: 'publicOthers', name: 'Autres' } }); + await db.collection('structures').updateMany({}, { $rename: { 'categories.genre': 'categories.publicOthers' } }); + + console.log('Update done: Categorie "Genre" -> "Autres"'); +}; diff --git a/test/mock/services/structures.mock.service.ts b/test/mock/services/structures.mock.service.ts index 3ef08059f..53e734444 100644 --- a/test/mock/services/structures.mock.service.ts +++ b/test/mock/services/structures.mock.service.ts @@ -47,7 +47,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -152,7 +152,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, freeWorkShop: 'Non', createdAt: new Date('2020-11-16T09:30:00.000Z'), @@ -388,7 +388,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, freeWorkShop: 'Non', createdAt: new Date('2020-11-16T09:30:00.000Z'), @@ -543,7 +543,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -645,7 +645,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -752,7 +752,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -854,7 +854,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -961,7 +961,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -1065,7 +1065,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -1258,7 +1258,7 @@ export class StructuresServiceMock { age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -1475,7 +1475,7 @@ export const mockResinStructures: Array<Structure> = [ age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -1580,7 +1580,7 @@ export const mockResinStructures: Array<Structure> = [ age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', @@ -1685,7 +1685,7 @@ export const mockResinStructures: Array<Structure> = [ age: ['young', 'family'], languageAndIlliteracy: ['illettrisme', 'english'], handicaps: ['physicalDisability'], - publicOthers: ['uniquementFemmes'], + genre: ['uniquementFemmes'], }, structureType: null, structureName: 'a', -- GitLab