From 2cb4cd1a7ba7a96cbcebb993c2514059766d46de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 8 Dec 2022 20:04:11 +0100 Subject: [PATCH] down too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../src/database/migrations.test.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/catalog-backend/src/database/migrations.test.ts b/plugins/catalog-backend/src/database/migrations.test.ts index d939d04ac6..8287ed882d 100644 --- a/plugins/catalog-backend/src/database/migrations.test.ts +++ b/plugins/catalog-backend/src/database/migrations.test.ts @@ -21,17 +21,21 @@ import fs from 'fs'; const migrationsDir = `${__dirname}/../../migrations`; const migrationsFiles = fs.readdirSync(migrationsDir).sort(); -async function migrateOnce(knex: Knex): Promise { +async function migrateUpOnce(knex: Knex): Promise { await knex.migrate.up({ directory: migrationsDir }); } +async function migrateDownOnce(knex: Knex): Promise { + await knex.migrate.down({ directory: migrationsDir }); +} + async function migrateUntilBefore(knex: Knex, target: string): Promise { const index = migrationsFiles.indexOf(target); if (index === -1) { throw new Error(`Migration ${target} not found`); } for (let i = 0; i < index; i++) { - await migrateOnce(knex); + await migrateUpOnce(knex); } } @@ -74,7 +78,7 @@ describe('migrations', () => { ]), ); - await knex.migrate.up({ directory: migrationsDir }); + await migrateUpOnce(knex); await expect(knex('search')).resolves.toEqual( expect.arrayContaining([ @@ -83,6 +87,15 @@ describe('migrations', () => { ]), ); + await migrateDownOnce(knex); + + await expect(knex('search')).resolves.toEqual( + expect.arrayContaining([ + { entity_id: 'i', key: 'k1', value: 'v1' }, + { entity_id: 'i', key: 'k2', value: null }, + ]), + ); + await knex.destroy(); }, 60_000,