mirror of
https://github.com/frappe/books.git
synced 2024-12-31 14:01:51 +00:00
incr: add dummy inventory test
- add test boiler plate - fix import error
This commit is contained in:
parent
40f2aa8444
commit
82e67a8874
21
models/inventory/tests/helpers.ts
Normal file
21
models/inventory/tests/helpers.ts
Normal file
@ -0,0 +1,21 @@
|
||||
import { Fyo } from 'fyo';
|
||||
import { ModelNameEnum } from 'models/types';
|
||||
import test from 'tape';
|
||||
|
||||
export const dummyItems = [
|
||||
{
|
||||
name: 'Ball Pen',
|
||||
rate: 50,
|
||||
for: 'Both',
|
||||
trackItem: true,
|
||||
},
|
||||
{
|
||||
name: 'Ink Pen',
|
||||
rate: 700,
|
||||
for: 'Both',
|
||||
trackItem: true,
|
||||
},
|
||||
];
|
||||
|
||||
export function createDummyItems(fyo: Fyo) {
|
||||
}
|
24
models/inventory/tests/testInventory.spec.ts
Normal file
24
models/inventory/tests/testInventory.spec.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import { ModelNameEnum } from 'models/types';
|
||||
import test from 'tape';
|
||||
import { closeTestFyo, getTestFyo, setupTestFyo } from 'tests/helpers';
|
||||
import { dummyItems } from './helpers';
|
||||
|
||||
const fyo = getTestFyo();
|
||||
|
||||
setupTestFyo(fyo, __filename);
|
||||
|
||||
test('create dummy items', async (t) => {
|
||||
for (const item of dummyItems) {
|
||||
const doc = fyo.doc.getNewDoc(ModelNameEnum.Item, item);
|
||||
t.ok(await doc.sync(), `${item.name} created`);
|
||||
}
|
||||
});
|
||||
|
||||
test('check dummy items', async (t) => {
|
||||
for (const { name } of dummyItems) {
|
||||
const exists = await fyo.db.exists(ModelNameEnum.Item, name);
|
||||
t.ok(exists, `${name} exists`);
|
||||
}
|
||||
});
|
||||
|
||||
closeTestFyo(fyo, __filename);
|
@ -41,12 +41,13 @@ import { ModelNameEnum } from 'models/types';
|
||||
import { computed } from 'vue';
|
||||
import WindowsTitleBar from './components/WindowsTitleBar.vue';
|
||||
import { handleErrorWithDialog } from './errorHandling';
|
||||
import { fyo, initializeInstance } from './initFyo';
|
||||
import { fyo } from './initFyo';
|
||||
import DatabaseSelector from './pages/DatabaseSelector.vue';
|
||||
import Desk from './pages/Desk.vue';
|
||||
import SetupWizard from './pages/SetupWizard/SetupWizard.vue';
|
||||
import setupInstance from './setup/setupInstance';
|
||||
import './styles/index.css';
|
||||
import { initializeInstance } from './utils/initialization';
|
||||
import { checkForUpdates } from './utils/ipcCalls';
|
||||
import { updateConfigFiles } from './utils/misc';
|
||||
import { Search } from './utils/search';
|
||||
|
@ -2,7 +2,10 @@ import { DatabaseManager } from 'backend/database/manager';
|
||||
import { config } from 'dotenv';
|
||||
import { Fyo } from 'fyo';
|
||||
import { DummyAuthDemux } from 'fyo/tests/helpers';
|
||||
import path from 'path';
|
||||
import setupInstance from 'src/setup/setupInstance';
|
||||
import { SetupWizardOptions } from 'src/setup/types';
|
||||
import test from 'tape';
|
||||
import { getFiscalYear } from 'utils/misc';
|
||||
|
||||
export function getTestSetupWizardOptions(): SetupWizardOptions {
|
||||
@ -25,6 +28,21 @@ export function getTestDbPath(dbPath?: string) {
|
||||
return dbPath ?? process.env.TEST_DB_PATH ?? ':memory:';
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Boilerplate
|
||||
*
|
||||
* The bottom three functions are test boilerplate for when
|
||||
* an initialized fyo object is to be used.
|
||||
*
|
||||
* They are required because top level await is not supported.
|
||||
*
|
||||
* Therefore setup and cleanup of the fyo object is wrapped
|
||||
* in tests which are executed serially (and awaited in order)
|
||||
* by tape.
|
||||
*
|
||||
* If `closeTestFyo` is not called the test process won't exit.
|
||||
*/
|
||||
|
||||
export function getTestFyo(): Fyo {
|
||||
return new Fyo({
|
||||
DatabaseDemux: DatabaseManager,
|
||||
@ -33,3 +51,23 @@ export function getTestFyo(): Fyo {
|
||||
isElectron: false,
|
||||
});
|
||||
}
|
||||
|
||||
const ext = '.spec.ts';
|
||||
|
||||
export function setupTestFyo(fyo: Fyo, filename: string) {
|
||||
const testName = path.basename(filename, ext);
|
||||
|
||||
return test(`setup: ${testName}`, async () => {
|
||||
const options = getTestSetupWizardOptions();
|
||||
const dbPath = getTestDbPath();
|
||||
await setupInstance(dbPath, options, fyo);
|
||||
});
|
||||
}
|
||||
|
||||
export function closeTestFyo(fyo: Fyo, filename: string) {
|
||||
const testName = path.basename(filename, ext);
|
||||
|
||||
return test(`cleanup: ${testName}`, async () => {
|
||||
await fyo.close();
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user