From e7b41530280c8c213ac9838cdceeccf887c22d02 Mon Sep 17 00:00:00 2001 From: Jay Cammarano <67079013+jaycammarano@users.noreply.github.com> Date: Tue, 28 Sep 2021 19:10:08 -0400 Subject: [PATCH] Tests for listFolders, resolvePackage (#8356) * listFolders test passing 100% coverage * added tmp package * listFolders test updated to use random temp folder * add package tmp to workspace * tmp as dev dependency * direct imports * resolve-packages passing 100% coverage * fixed tmpdir location in list-folders * Pin tmp Co-authored-by: rijkvanzanten --- package-lock.json | 7 +++--- packages/shared/package.json | 2 +- packages/shared/src/utils/adjust-date.test.ts | 2 +- .../shared/src/utils/define-extension.test.ts | 9 +++++++- .../shared/src/utils/filters-to-query.test.ts | 2 +- .../utils/get-fields-from-template.test.ts | 2 +- .../get-filter-operators-for-type.test.ts | 2 +- .../src/utils/get-relation-type.test.ts | 2 +- .../shared/src/utils/is-extension.test.ts | 2 +- .../shared/src/utils/move-in-array.test.ts | 2 +- .../src/utils/node/list-folders.test.ts | 20 +++++++++++++++++ .../src/utils/node/resolve-package.test.ts | 22 +++++++++++++++++++ .../shared/src/utils/parse-filter.test.ts | 2 +- packages/shared/src/utils/pluralize.test.ts | 2 +- packages/shared/src/utils/to-array.test.ts | 2 +- .../utils/validate-extension-manifest.test.ts | 2 +- 16 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 packages/shared/src/utils/node/list-folders.test.ts create mode 100644 packages/shared/src/utils/node/resolve-package.test.ts diff --git a/package-lock.json b/package-lock.json index 49cd263634..5d35d10639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50344,7 +50344,7 @@ "devDependencies": { "npm-run-all": "4.1.5", "rimraf": "3.0.2", - "tmp": "0.0.33", + "tmp": "0.2.1", "typescript": "4.4.3" } }, @@ -52917,7 +52917,7 @@ "npm-run-all": "4.1.5", "pino": "*", "rimraf": "3.0.2", - "tmp": "0.0.33", + "tmp": "0.2.1", "typescript": "4.4.3", "vue": "3", "vue-i18n": "9", @@ -52940,7 +52940,8 @@ } }, "tmp": { - "version": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { diff --git a/packages/shared/package.json b/packages/shared/package.json index c54056af06..7b4c20b2d0 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -66,7 +66,7 @@ "devDependencies": { "npm-run-all": "4.1.5", "rimraf": "3.0.2", - "tmp": "0.0.33", + "tmp": "0.2.1", "typescript": "4.4.3" } } diff --git a/packages/shared/src/utils/adjust-date.test.ts b/packages/shared/src/utils/adjust-date.test.ts index e28f0a4661..2434d2c3b3 100644 --- a/packages/shared/src/utils/adjust-date.test.ts +++ b/packages/shared/src/utils/adjust-date.test.ts @@ -1,4 +1,4 @@ -import { adjustDate } from '.'; +import { adjustDate } from './adjust-date'; describe('Adjust a given date by a given change in duration.', () => { const date = new Date('2021-09-20T21:06:51.517Z'); diff --git a/packages/shared/src/utils/define-extension.test.ts b/packages/shared/src/utils/define-extension.test.ts index 83523d06b7..86f735414d 100644 --- a/packages/shared/src/utils/define-extension.test.ts +++ b/packages/shared/src/utils/define-extension.test.ts @@ -1,4 +1,11 @@ -import { defineInterface, defineDisplay, defineModule, defineLayout, defineHook, defineEndpoint } from '.'; +import { + defineInterface, + defineDisplay, + defineModule, + defineLayout, + defineHook, + defineEndpoint, +} from './define-extension'; import { Type } from '../types/fields'; import { defineComponent } from 'vue'; diff --git a/packages/shared/src/utils/filters-to-query.test.ts b/packages/shared/src/utils/filters-to-query.test.ts index 9fa3ad0d15..40b0402df3 100644 --- a/packages/shared/src/utils/filters-to-query.test.ts +++ b/packages/shared/src/utils/filters-to-query.test.ts @@ -1,4 +1,4 @@ -import { filtersToQuery } from '.'; +import { filtersToQuery } from './filters-to-query'; import { Filter } from '../types/filter'; describe('filtersToQuery', () => { diff --git a/packages/shared/src/utils/get-fields-from-template.test.ts b/packages/shared/src/utils/get-fields-from-template.test.ts index 079c234fed..e894469fb9 100644 --- a/packages/shared/src/utils/get-fields-from-template.test.ts +++ b/packages/shared/src/utils/get-fields-from-template.test.ts @@ -1,4 +1,4 @@ -import { getFieldsFromTemplate } from '.'; +import { getFieldsFromTemplate } from './get-fields-from-template'; describe('getFieldsFromTemplate', () => { it('returns an empty array when passed null', () => { diff --git a/packages/shared/src/utils/get-filter-operators-for-type.test.ts b/packages/shared/src/utils/get-filter-operators-for-type.test.ts index df8db35058..dc5be92773 100644 --- a/packages/shared/src/utils/get-filter-operators-for-type.test.ts +++ b/packages/shared/src/utils/get-filter-operators-for-type.test.ts @@ -1,4 +1,4 @@ -import { getFilterOperatorsForType } from '.'; +import { getFilterOperatorsForType } from './get-filter-operators-for-type'; import { TYPES } from '../constants/fields'; describe('', () => { diff --git a/packages/shared/src/utils/get-relation-type.test.ts b/packages/shared/src/utils/get-relation-type.test.ts index bbd8f9842d..285141ca2a 100644 --- a/packages/shared/src/utils/get-relation-type.test.ts +++ b/packages/shared/src/utils/get-relation-type.test.ts @@ -1,4 +1,4 @@ -import { getRelationType } from '.'; +import { getRelationType } from './get-relation-type'; import { Relation } from '../types'; describe('getRelationType', () => { diff --git a/packages/shared/src/utils/is-extension.test.ts b/packages/shared/src/utils/is-extension.test.ts index 7005a11838..6ea33bb68f 100644 --- a/packages/shared/src/utils/is-extension.test.ts +++ b/packages/shared/src/utils/is-extension.test.ts @@ -1,4 +1,4 @@ -import { isExtension, isAppExtension, isApiExtension, isExtensionPackage } from '.'; +import { isExtension, isAppExtension, isApiExtension, isExtensionPackage } from './is-extension'; describe('is extension type', () => { it('returns true when passed a valid extension_type', () => { diff --git a/packages/shared/src/utils/move-in-array.test.ts b/packages/shared/src/utils/move-in-array.test.ts index 8e7a7bb3fc..39a94916ae 100644 --- a/packages/shared/src/utils/move-in-array.test.ts +++ b/packages/shared/src/utils/move-in-array.test.ts @@ -1,4 +1,4 @@ -import { moveInArray } from '.'; +import { moveInArray } from './move-in-array'; describe('moveInArray', () => { const testArray = [1, 2, 3, 4, 5, 6]; diff --git a/packages/shared/src/utils/node/list-folders.test.ts b/packages/shared/src/utils/node/list-folders.test.ts new file mode 100644 index 0000000000..788e1cc3d8 --- /dev/null +++ b/packages/shared/src/utils/node/list-folders.test.ts @@ -0,0 +1,20 @@ +import { listFolders } from './list-folders'; +import { dirSync, SynchrounousResult } from 'tmp'; + +describe('', () => { + let rootDir: SynchrounousResult; + let childDir: SynchrounousResult; + + beforeEach(() => { + rootDir = dirSync({ unsafeCleanup: true, tmpdir: './' } as any); + childDir = dirSync({ tmpdir: rootDir.name } as any); + }); + + afterEach(() => { + rootDir.removeCallback(); + }); + it('returns all the subdirectories of the current directory', async () => { + const childPath = childDir.name.split('/'); + expect(await listFolders(rootDir.name)).toStrictEqual([childPath[childPath?.length - 1]]); + }); +}); diff --git a/packages/shared/src/utils/node/resolve-package.test.ts b/packages/shared/src/utils/node/resolve-package.test.ts new file mode 100644 index 0000000000..0d3d1a4cfc --- /dev/null +++ b/packages/shared/src/utils/node/resolve-package.test.ts @@ -0,0 +1,22 @@ +import { resolvePackage } from './resolve-package'; +import { dirSync, SynchrounousResult } from 'tmp'; +import { ensureDirSync, writeJsonSync } from 'fs-extra'; +import path from 'path'; +describe('', () => { + let rootDir: SynchrounousResult; + beforeEach(() => { + rootDir = dirSync({ unsafeCleanup: true, tmpdir: './' } as any); + ensureDirSync(`${rootDir.name}/node_modules/`); + ensureDirSync(`${rootDir.name}/node_modules/test-package/`); + writeJsonSync(`${rootDir.name}/node_modules/test-package/package.json`, { name: 'test' }); + }); + + afterEach(() => { + rootDir.removeCallback(); + }); + it('the package to be found', () => { + expect(resolvePackage('test-package', rootDir.name)).toBe( + path.resolve(`${rootDir.name}/node_modules/test-package`) + ); + }); +}); diff --git a/packages/shared/src/utils/parse-filter.test.ts b/packages/shared/src/utils/parse-filter.test.ts index b55c0b3ef5..4a436a44e8 100644 --- a/packages/shared/src/utils/parse-filter.test.ts +++ b/packages/shared/src/utils/parse-filter.test.ts @@ -1,4 +1,4 @@ -import { parseFilter } from '.'; +import { parseFilter } from './parse-filter'; import { Filter } from '../types/filter'; describe('', () => { diff --git a/packages/shared/src/utils/pluralize.test.ts b/packages/shared/src/utils/pluralize.test.ts index c3220b04ba..dcbc45a8d8 100644 --- a/packages/shared/src/utils/pluralize.test.ts +++ b/packages/shared/src/utils/pluralize.test.ts @@ -1,4 +1,4 @@ -import { pluralize, depluralize } from '.'; +import { pluralize, depluralize } from './pluralize'; describe('pluralize', () => { it('adds an s to the end of the string', () => { diff --git a/packages/shared/src/utils/to-array.test.ts b/packages/shared/src/utils/to-array.test.ts index ed833a3e26..fb813be307 100644 --- a/packages/shared/src/utils/to-array.test.ts +++ b/packages/shared/src/utils/to-array.test.ts @@ -1,4 +1,4 @@ -import { toArray } from '.'; +import { toArray } from './to-array'; describe('toArray', () => { it('takes in a string and returns an array', () => { diff --git a/packages/shared/src/utils/validate-extension-manifest.test.ts b/packages/shared/src/utils/validate-extension-manifest.test.ts index 6d5538a0f6..6fedc21b69 100644 --- a/packages/shared/src/utils/validate-extension-manifest.test.ts +++ b/packages/shared/src/utils/validate-extension-manifest.test.ts @@ -1,4 +1,4 @@ -import { validateExtensionManifest } from '.'; +import { validateExtensionManifest } from './validate-extension-manifest'; describe('', () => { it('returns false when passed item with is no name or version', () => {