From 148dc629ae124693e1a45368d1f0f4e0147fcf81 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Mon, 30 Jan 2023 14:46:27 -0500 Subject: [PATCH] initialize database inside of coverage --- .github/workflows/coverage.yml | 3 --- helpers/initializer.database.cemetery.d.ts | 2 +- helpers/initializer.database.cemetery.js | 8 ++++---- helpers/initializer.database.cemetery.ts | 11 ++++++----- package.json | 2 -- test/0_initializeDatabase.d.ts | 1 + test/0_initializeDatabase.js | 8 ++++++++ test/0_initializeDatabase.ts | 12 ++++++++++++ test/functions.js | 2 +- test/functions.ts | 2 +- 10 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 test/0_initializeDatabase.d.ts create mode 100644 test/0_initializeDatabase.js create mode 100644 test/0_initializeDatabase.ts diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 50110e3a..dbf758c7 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -32,9 +32,6 @@ jobs: - name: Copy Test Config run: cp ./data/config.testing.js ./data/config.js - - name: Initialize Database - run: npm run init:cemetery:test - - name: Code Climate (Before) if: ${{ github.event_name != 'pull_request' && env.CC_TEST_REPORTER_ID != '' && matrix.node == 16 }} run: | diff --git a/helpers/initializer.database.cemetery.d.ts b/helpers/initializer.database.cemetery.d.ts index cb0ff5c3..bd4e162f 100644 --- a/helpers/initializer.database.cemetery.d.ts +++ b/helpers/initializer.database.cemetery.d.ts @@ -1 +1 @@ -export {}; +export declare function initializeCemeteryDatabase(): Promise; diff --git a/helpers/initializer.database.cemetery.js b/helpers/initializer.database.cemetery.js index b72101fc..1fa84e21 100644 --- a/helpers/initializer.database.cemetery.js +++ b/helpers/initializer.database.cemetery.js @@ -2,8 +2,8 @@ import { lotOccupancyDB as databasePath } from '../data/databasePaths.js'; import { initializeDatabase } from './initializer.database.js'; import { addOccupancyTypeField } from './lotOccupancyDB/addOccupancyTypeField.js'; import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js'; -import Debug from 'debug'; import { addRecord } from './lotOccupancyDB/addRecord.js'; +import Debug from 'debug'; const debug = Debug('lot-occupancy-system:initialize'); const session = { user: { @@ -15,13 +15,13 @@ const session = { } } }; -async function initializeCemeteryDatabase() { +export async function initializeCemeteryDatabase() { debug('Checking for ' + databasePath + '...'); const databaseInitialized = initializeDatabase(); if (!databaseInitialized) { debug('Database already created.\n' + 'To initialize this database with cemetery types, delete the database file first, then rerun this script.'); - return; + return false; } debug('New database file created. Proceeding with initialization.'); await addRecord('LotTypes', 'Casket Grave', 1, session); @@ -167,5 +167,5 @@ async function initializeCemeteryDatabase() { await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session); await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session); await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session); + return true; } -await initializeCemeteryDatabase(); diff --git a/helpers/initializer.database.cemetery.ts b/helpers/initializer.database.cemetery.ts index 9de80da9..7ce21f2d 100644 --- a/helpers/initializer.database.cemetery.ts +++ b/helpers/initializer.database.cemetery.ts @@ -6,10 +6,11 @@ import { addOccupancyTypeField } from './lotOccupancyDB/addOccupancyTypeField.js import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js' +import { addRecord } from './lotOccupancyDB/addRecord.js' + import type { PartialSession } from '../types/recordTypes.js' import Debug from 'debug' -import { addRecord } from './lotOccupancyDB/addRecord.js' const debug = Debug('lot-occupancy-system:initialize') const session: PartialSession = { @@ -23,7 +24,7 @@ const session: PartialSession = { } } -async function initializeCemeteryDatabase(): Promise { +export async function initializeCemeteryDatabase(): Promise { /* * Ensure database does not already exist */ @@ -36,7 +37,7 @@ async function initializeCemeteryDatabase(): Promise { 'Database already created.\n' + 'To initialize this database with cemetery types, delete the database file first, then rerun this script.' ) - return + return false } debug('New database file created. Proceeding with initialization.') @@ -295,6 +296,6 @@ async function initializeCemeteryDatabase(): Promise { await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session) await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session) await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session) -} -await initializeCemeteryDatabase() + return true +} diff --git a/package.json b/package.json index a170a6bf..aea1c444 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,6 @@ }, "scripts": { "build:version": "npx genversion --es6 --semi version.js", - "init:cemetery": "cross-env NODE_ENV=dev DEBUG=lot-occupancy-system:* node ./helpers/initializer.database.cemetery.js", - "init:cemetery:test": "cross-env NODE_ENV=dev DEBUG=lot-occupancy-system:* TEST_DATABASES=true node ./helpers/initializer.database.cemetery.js", "start": "cross-env NODE_ENV=production node ./bin/www", "dev:test": "cross-env NODE_ENV=dev DEBUG=lot-occupancy-system:* TEST_DATABASES=true nodemon ./bin/www.js", "dev:live": "cross-env NODE_ENV=dev DEBUG=lot-occupancy-system:* nodemon ./bin/www.js", diff --git a/test/0_initializeDatabase.d.ts b/test/0_initializeDatabase.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/test/0_initializeDatabase.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/test/0_initializeDatabase.js b/test/0_initializeDatabase.js new file mode 100644 index 00000000..8675b4e5 --- /dev/null +++ b/test/0_initializeDatabase.js @@ -0,0 +1,8 @@ +import * as assert from 'node:assert'; +import { initializeCemeteryDatabase } from '../helpers/initializer.database.cemetery.js'; +describe('Initialize Database', () => { + it('initializes a cemetery database', async () => { + const success = await initializeCemeteryDatabase(); + assert.ok(success); + }); +}); diff --git a/test/0_initializeDatabase.ts b/test/0_initializeDatabase.ts new file mode 100644 index 00000000..4783025c --- /dev/null +++ b/test/0_initializeDatabase.ts @@ -0,0 +1,12 @@ +/* eslint-disable unicorn/filename-case */ + +import * as assert from 'node:assert' +import { initializeCemeteryDatabase } from '../helpers/initializer.database.cemetery.js' + +describe('Initialize Database', () => { + it('initializes a cemetery database', async () => { + const success = await initializeCemeteryDatabase() + + assert.ok(success) + }) +}) diff --git a/test/functions.js b/test/functions.js index c7caca90..5d2ab285 100644 --- a/test/functions.js +++ b/test/functions.js @@ -335,7 +335,7 @@ describe('functions.user', () => { }); }); }); -describe('plyfills', () => { +describe('polyfills', () => { it('applys Object.hasOwn polyfill', () => { delete Object.hasOwn; assert.ok(Object.hasOwn === undefined); diff --git a/test/functions.ts b/test/functions.ts index 76c8eb87..54334b56 100644 --- a/test/functions.ts +++ b/test/functions.ts @@ -516,7 +516,7 @@ describe('functions.user', () => { }) }) -describe('plyfills', () => { +describe('polyfills', () => { it('applys Object.hasOwn polyfill', () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any delete (Object as any).hasOwn