initialize database inside of coverage

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-30 14:46:27 -05:00
parent b45567450f
commit 148dc629ae
10 changed files with 34 additions and 17 deletions

View File

@ -32,9 +32,6 @@ jobs:
- name: Copy Test Config - name: Copy Test Config
run: cp ./data/config.testing.js ./data/config.js run: cp ./data/config.testing.js ./data/config.js
- name: Initialize Database
run: npm run init:cemetery:test
- name: Code Climate (Before) - name: Code Climate (Before)
if: ${{ github.event_name != 'pull_request' && env.CC_TEST_REPORTER_ID != '' && matrix.node == 16 }} if: ${{ github.event_name != 'pull_request' && env.CC_TEST_REPORTER_ID != '' && matrix.node == 16 }}
run: | run: |

View File

@ -1 +1 @@
export {}; export declare function initializeCemeteryDatabase(): Promise<boolean>;

View File

@ -2,8 +2,8 @@ import { lotOccupancyDB as databasePath } from '../data/databasePaths.js';
import { initializeDatabase } from './initializer.database.js'; import { initializeDatabase } from './initializer.database.js';
import { addOccupancyTypeField } from './lotOccupancyDB/addOccupancyTypeField.js'; import { addOccupancyTypeField } from './lotOccupancyDB/addOccupancyTypeField.js';
import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js'; import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js';
import Debug from 'debug';
import { addRecord } from './lotOccupancyDB/addRecord.js'; import { addRecord } from './lotOccupancyDB/addRecord.js';
import Debug from 'debug';
const debug = Debug('lot-occupancy-system:initialize'); const debug = Debug('lot-occupancy-system:initialize');
const session = { const session = {
user: { user: {
@ -15,13 +15,13 @@ const session = {
} }
} }
}; };
async function initializeCemeteryDatabase() { export async function initializeCemeteryDatabase() {
debug('Checking for ' + databasePath + '...'); debug('Checking for ' + databasePath + '...');
const databaseInitialized = initializeDatabase(); const databaseInitialized = initializeDatabase();
if (!databaseInitialized) { if (!databaseInitialized) {
debug('Database already created.\n' + debug('Database already created.\n' +
'To initialize this database with cemetery types, delete the database file first, then rerun this script.'); '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.'); debug('New database file created. Proceeding with initialization.');
await addRecord('LotTypes', 'Casket Grave', 1, session); await addRecord('LotTypes', 'Casket Grave', 1, session);
@ -167,5 +167,5 @@ async function initializeCemeteryDatabase() {
await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session); await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session);
await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session); await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session);
await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session); await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session);
return true;
} }
await initializeCemeteryDatabase();

View File

@ -6,10 +6,11 @@ import { addOccupancyTypeField } from './lotOccupancyDB/addOccupancyTypeField.js
import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js' import { addLotOccupantType } from './lotOccupancyDB/addLotOccupantType.js'
import { addRecord } from './lotOccupancyDB/addRecord.js'
import type { PartialSession } from '../types/recordTypes.js' import type { PartialSession } from '../types/recordTypes.js'
import Debug from 'debug' import Debug from 'debug'
import { addRecord } from './lotOccupancyDB/addRecord.js'
const debug = Debug('lot-occupancy-system:initialize') const debug = Debug('lot-occupancy-system:initialize')
const session: PartialSession = { const session: PartialSession = {
@ -23,7 +24,7 @@ const session: PartialSession = {
} }
} }
async function initializeCemeteryDatabase(): Promise<void> { export async function initializeCemeteryDatabase(): Promise<boolean> {
/* /*
* Ensure database does not already exist * Ensure database does not already exist
*/ */
@ -36,7 +37,7 @@ async function initializeCemeteryDatabase(): Promise<void> {
'Database already created.\n' + 'Database already created.\n' +
'To initialize this database with cemetery types, delete the database file first, then rerun this script.' '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.') debug('New database file created. Proceeding with initialization.')
@ -295,6 +296,6 @@ async function initializeCemeteryDatabase(): Promise<void> {
await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session) await addRecord('WorkOrderMilestoneTypes', 'Arrival', 2, session)
await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session) await addRecord('WorkOrderMilestoneTypes', 'Cremation', 3, session)
await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session) await addRecord('WorkOrderMilestoneTypes', 'Interment', 4, session)
}
await initializeCemeteryDatabase() return true
}

View File

@ -9,8 +9,6 @@
}, },
"scripts": { "scripts": {
"build:version": "npx genversion --es6 --semi version.js", "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", "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: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", "dev:live": "cross-env NODE_ENV=dev DEBUG=lot-occupancy-system:* nodemon ./bin/www.js",

1
test/0_initializeDatabase.d.ts vendored 100644
View File

@ -0,0 +1 @@
export {};

View File

@ -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);
});
});

View File

@ -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)
})
})

View File

@ -335,7 +335,7 @@ describe('functions.user', () => {
}); });
}); });
}); });
describe('plyfills', () => { describe('polyfills', () => {
it('applys Object.hasOwn polyfill', () => { it('applys Object.hasOwn polyfill', () => {
delete Object.hasOwn; delete Object.hasOwn;
assert.ok(Object.hasOwn === undefined); assert.ok(Object.hasOwn === undefined);

View File

@ -516,7 +516,7 @@ describe('functions.user', () => {
}) })
}) })
describe('plyfills', () => { describe('polyfills', () => {
it('applys Object.hasOwn polyfill', () => { it('applys Object.hasOwn polyfill', () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
delete (Object as any).hasOwn delete (Object as any).hasOwn