@twec/node-suite
Version:
Generic functionality for connecting to NetSuite Web Services from Node
44 lines (36 loc) • 1.79 kB
JavaScript
const test = require('ava');
const foldersUtils = require('../lib/folders');
const sampleFolderPathArray = ['home', 'folder', 'sub-folder'];
test('doFolderRecordsMatch returns true with matching name and parent name', (t) => {
const sampleFolderRecord1 = { name: 'sub-folder', parent: { name: 'folder' } };
const sampleFolderRecord2 = { name: 'sub-folder', parent: { name: 'folder' } };
t.true(foldersUtils.doFolderRecordsMatch(sampleFolderRecord1, sampleFolderRecord2));
});
// TODO: Should test other cases of doFolderRecordsMatch
test('getSimpleFolderRecordFromPath returns an object with expected names', (t) => {
const record = foldersUtils.getSimpleFolderRecordFromPath(sampleFolderPathArray);
t.is(typeof record, 'object');
t.is(record.name, 'sub-folder');
t.is(record.parent.name, 'folder');
});
test('getSimpleFolderRecordFromPath returns object with expected name with single folder', (t) => {
const record = foldersUtils.getSimpleFolderRecordFromPath(['hello']);
t.is(typeof record, 'object');
t.is(record.name, 'hello');
t.is(record.parent, undefined);
});
// TODO: Should test other cases of isFolderRecordInPath
test('findFolderRecord finds record based on folder path', (t) => {
const expectedMatchRecord = { name: 'sub-folder', parent: { name: 'folder' } };
const sampleFolderRecords = [
{ name: 'what' },
{ name: 'sub-folder' }, // Nearly a match but missing parent
{ name: 'folder', parent: { name: 'home' } },
{ name: 'NotHere', parent: { name: 'folder' } },
expectedMatchRecord,
{ name: 'NotTheFolderYoureLookingFor', parent: { name: 'home' } },
{ name: 'NotHere' },
];
const folder = foldersUtils.findFolderRecord(sampleFolderPathArray, sampleFolderRecords);
t.is(folder, expectedMatchRecord);
});