From d97edce97995f69b839265550580403cf8de0c7b Mon Sep 17 00:00:00 2001 From: Cajetan Grill <99743209+krokettenkoal@users.noreply.github.com> Date: Fri, 28 Jul 2023 11:22:56 +0200 Subject: [PATCH] Updated file system tests to be OS-agnostic - Test results for write operations are now designed to match irrespective of the system's path encoding: The previously used UNIX-style path strings do not match on Windows systems. Therefore, expected paths are now being resolved as they are in their corresponding write function. - Unit tests should now pass on all systems. --- src/utils/writeClientCore.spec.ts | 13 +++++++------ src/utils/writeClientIndex.spec.ts | 4 +++- src/utils/writeClientModels.spec.ts | 3 ++- src/utils/writeClientSchemas.spec.ts | 3 ++- src/utils/writeClientServices.spec.ts | 3 ++- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/utils/writeClientCore.spec.ts b/src/utils/writeClientCore.spec.ts index 36990054..7db71f59 100644 --- a/src/utils/writeClientCore.spec.ts +++ b/src/utils/writeClientCore.spec.ts @@ -1,4 +1,5 @@ import { EOL } from 'os'; +import { resolve } from 'path'; import type { Client } from '../client/interfaces/Client'; import { HttpClient } from '../HttpClient'; @@ -40,11 +41,11 @@ describe('writeClientCore', () => { await writeClientCore(client, templates, '/', HttpClient.FETCH, Indent.SPACE_4); - expect(writeFile).toBeCalledWith('/OpenAPI.ts', `settings${EOL}`); - expect(writeFile).toBeCalledWith('/ApiError.ts', `apiError${EOL}`); - expect(writeFile).toBeCalledWith('/ApiRequestOptions.ts', `apiRequestOptions${EOL}`); - expect(writeFile).toBeCalledWith('/ApiResult.ts', `apiResult${EOL}`); - expect(writeFile).toBeCalledWith('/CancelablePromise.ts', `cancelablePromise${EOL}`); - expect(writeFile).toBeCalledWith('/request.ts', `request${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/OpenAPI.ts'), `settings${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/ApiError.ts'), `apiError${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/ApiRequestOptions.ts'), `apiRequestOptions${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/ApiResult.ts'), `apiResult${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/CancelablePromise.ts'), `cancelablePromise${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/request.ts'), `request${EOL}`); }); }); diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index a7442111..a7d5b610 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -1,3 +1,5 @@ +import { resolve } from 'path'; + import type { Client } from '../client/interfaces/Client'; import { writeFile } from './fileSystem'; import type { Templates } from './registerHandlebarTemplates'; @@ -36,6 +38,6 @@ describe('writeClientIndex', () => { await writeClientIndex(client, templates, '/', true, true, true, true, true, 'Service', ''); - expect(writeFile).toBeCalledWith('/index.ts', 'index'); + expect(writeFile).toBeCalledWith(resolve('/', '/index.ts'), 'index'); }); }); diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index e147c8e7..ee0f2b4f 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -1,4 +1,5 @@ import { EOL } from 'os'; +import { resolve } from 'path'; import type { Model } from '../client/interfaces/Model'; import { HttpClient } from '../HttpClient'; @@ -53,6 +54,6 @@ describe('writeClientModels', () => { await writeClientModels(models, templates, '/', HttpClient.FETCH, false, Indent.SPACE_4); - expect(writeFile).toBeCalledWith('/User.ts', `model${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/User.ts'), `model${EOL}`); }); }); diff --git a/src/utils/writeClientSchemas.spec.ts b/src/utils/writeClientSchemas.spec.ts index f7128623..e75928b8 100644 --- a/src/utils/writeClientSchemas.spec.ts +++ b/src/utils/writeClientSchemas.spec.ts @@ -1,4 +1,5 @@ import { EOL } from 'os'; +import { resolve } from 'path'; import type { Model } from '../client/interfaces/Model'; import { HttpClient } from '../HttpClient'; @@ -53,6 +54,6 @@ describe('writeClientSchemas', () => { await writeClientSchemas(models, templates, '/', HttpClient.FETCH, false, Indent.SPACE_4); - expect(writeFile).toBeCalledWith('/$User.ts', `schema${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/$User.ts'), `schema${EOL}`); }); }); diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index b7ebbfe6..f936d660 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -1,4 +1,5 @@ import { EOL } from 'os'; +import { resolve } from 'path'; import type { Service } from '../client/interfaces/Service'; import { HttpClient } from '../HttpClient'; @@ -41,6 +42,6 @@ describe('writeClientServices', () => { await writeClientServices(services, templates, '/', HttpClient.FETCH, false, false, Indent.SPACE_4, 'Service'); - expect(writeFile).toBeCalledWith('/UserService.ts', `service${EOL}`); + expect(writeFile).toBeCalledWith(resolve('/', '/UserService.ts'), `service${EOL}`); }); });