diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts index ac3be609fa..7b97975ebf 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/github.test.ts @@ -15,17 +15,18 @@ */ import fs from 'fs-extra'; +import os from 'os'; +import { resolve } from 'path'; import { GithubPreparer } from './github'; -import { - TemplateEntityV1alpha1, - LOCATION_ANNOTATION, -} from '@backstage/catalog-model'; import { getVoidLogger, Git } from '@backstage/backend-common'; jest.mock('fs-extra'); describe('GitHubPreparer', () => { - let mockEntity: TemplateEntityV1alpha1; + const workspacePath = os.platform() === 'win32' ? 'C:\\tmp' : '/tmp'; + const checkoutPath = resolve(workspacePath, 'checkout'); + const templatePath = resolve(workspacePath, 'template'); + const mockGitClient = { clone: jest.fn(), }; @@ -47,16 +48,16 @@ describe('GitHubPreparer', () => { url: 'https://github.com/benjdlambert/backstage-graphql-template/blob/master/templates/graphql-starter/template', logger, - workspacePath: '/tmp', + workspacePath, }); expect(mockGitClient.clone).toHaveBeenCalledWith({ url: 'https://github.com/benjdlambert/backstage-graphql-template', - dir: expect.any(String), + dir: checkoutPath, }); expect(fs.move).toHaveBeenCalledWith( - '/tmp/checkout/templates/graphql-starter/template', - '/tmp/template', + resolve(checkoutPath, 'templates', 'graphql-starter', 'template'), + templatePath, ); expect(fs.rmdir).toHaveBeenCalledWith('/tmp/template/.git'); }); @@ -66,15 +67,15 @@ describe('GitHubPreparer', () => { url: 'https://github.com/benjdlambert/backstage-graphql-template/blob/master', logger, - workspacePath: '/tmp', + workspacePath, }); expect(mockGitClient.clone).toHaveBeenCalledWith({ url: 'https://github.com/benjdlambert/backstage-graphql-template', - dir: expect.any(String), + dir: checkoutPath, }); - expect(fs.move).toHaveBeenCalledWith('/tmp/checkout', '/tmp/template'); - expect(fs.rmdir).toHaveBeenCalledWith('/tmp/template/.git'); + expect(fs.move).toHaveBeenCalledWith(checkoutPath, templatePath); + expect(fs.rmdir).toHaveBeenCalledWith(resolve(templatePath, '.git')); }); it('calls the clone command with token', async () => { @@ -82,7 +83,7 @@ describe('GitHubPreparer', () => { url: 'https://github.com/benjdlambert/backstage-graphql-template/blob/master', logger, - workspacePath: '/tmp', + workspacePath, }); expect(Git.fromAuth).toHaveBeenCalledWith({ diff --git a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/gitlab.test.ts b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/gitlab.test.ts index 8bb602fb34..35da164c3c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/stages/prepare/gitlab.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/stages/prepare/gitlab.test.ts @@ -14,12 +14,18 @@ * limitations under the License. */ import fs from 'fs-extra'; +import os from 'os'; +import { resolve } from 'path'; import { GitlabPreparer } from './gitlab'; import { getVoidLogger, Git } from '@backstage/backend-common'; jest.mock('fs-extra'); describe('GitLabPreparer', () => { + const workspacePath = os.platform() === 'win32' ? 'C:\\tmp' : '/tmp'; + const checkoutPath = resolve(workspacePath, 'checkout'); + const templatePath = resolve(workspacePath, 'template'); + const mockGitClient = { clone: jest.fn(), }; @@ -40,12 +46,12 @@ describe('GitLabPreparer', () => { url: 'https://gitlab.com/benjdlambert/backstage-graphql-template/-/blob/master', logger, - workspacePath: '/tmp', + workspacePath, }); expect(mockGitClient.clone).toHaveBeenCalledWith({ url: 'https://gitlab.com/benjdlambert/backstage-graphql-template', - dir: '/tmp/checkout', + dir: checkoutPath, }); expect(Git.fromAuth).toHaveBeenCalledWith({ @@ -54,8 +60,8 @@ describe('GitLabPreparer', () => { password: 'fake-token', }); - expect(fs.move).toHaveBeenCalledWith('/tmp/checkout', '/tmp/template'); - expect(fs.rmdir).toHaveBeenCalledWith('/tmp/template/.git'); + expect(fs.move).toHaveBeenCalledWith(checkoutPath, templatePath); + expect(fs.rmdir).toHaveBeenCalledWith(resolve(templatePath, '.git')); }); it(`clones the template from a sub directory if specified`, async () => { @@ -63,11 +69,11 @@ describe('GitLabPreparer', () => { url: 'https://gitlab.com/benjdlambert/backstage-graphql-template/-/blob/master/1/2/3', logger, - workspacePath: '/tmp', + workspacePath, }); expect(fs.move).toHaveBeenCalledWith( - '/tmp/checkout/1/2/3', - '/tmp/template', + resolve(checkoutPath, '1', '2', '3'), + templatePath, ); }); });