diff --git a/packages/cli/e2e/__tests__/test.spec.ts b/packages/cli/e2e/__tests__/test.spec.ts index d51d9bb7..a1cfef00 100644 --- a/packages/cli/e2e/__tests__/test.spec.ts +++ b/packages/cli/e2e/__tests__/test.spec.ts @@ -12,9 +12,9 @@ describe('test', () => { accountId: config.get('accountId'), directory: path.join(__dirname, 'fixtures', 'test-project'), }) - expect(result.status).toBe(0) expect(result.stdout).not.toContain('File extension type example') expect(result.stdout).toContain(secretEnv) + expect(result.status).toBe(0) }) it('Should include only one check', () => { @@ -24,9 +24,9 @@ describe('test', () => { accountId: config.get('accountId'), directory: path.join(__dirname, 'fixtures', 'test-project'), }) - expect(result.status).toBe(0) expect(result.stdout).toContain('Show SECRET_ENV value') expect(result.stdout).toContain('1 passed, 1 total') + expect(result.status).toBe(0) }) it('Should use different config file', () => { @@ -36,9 +36,9 @@ describe('test', () => { accountId: config.get('accountId'), directory: path.join(__dirname, 'fixtures', 'test-project'), }) - expect(result.status).toBe(0) expect(result.stdout).toContain('Show SECRET_ENV value') expect(result.stdout).toContain('1 passed, 1 total') + expect(result.status).toBe(0) }) it('Should fail with config file not found', () => { @@ -58,8 +58,8 @@ describe('test', () => { accountId: config.get('accountId'), directory: path.join(__dirname, 'fixtures', 'test-project'), }) - expect(result.status).toBe(0) expect(result.stdout).toContain('0 total') + expect(result.status).toBe(0) }) it('Should terminate with error when JS/TS throws error', () => { diff --git a/packages/cli/src/services/__tests__/checkly-config-loader.spec.ts b/packages/cli/src/services/__tests__/checkly-config-loader.spec.ts index fc3babd1..837ff2f3 100644 --- a/packages/cli/src/services/__tests__/checkly-config-loader.spec.ts +++ b/packages/cli/src/services/__tests__/checkly-config-loader.spec.ts @@ -1,6 +1,6 @@ import * as path from 'path' import { loadChecklyConfig } from '../checkly-config-loader' -import { pathToPosix, splitConfigFilePath } from '../util' +import { splitConfigFilePath } from '../util' describe('loadChecklyConfig()', () => { it('config file should export an object', async () => { @@ -26,15 +26,16 @@ describe('loadChecklyConfig()', () => { } }) it('config TS file should export an object', async () => { - const configFile = './fixtures/configs/good-config.ts' + const filename = 'good-config.ts' + const configFile = `./fixtures/configs/${filename}` const { configDirectory, configFilenames } = splitConfigFilePath(configFile) - expect(configFilenames).toEqual(['good-config.ts']) - expect(configDirectory).toEqual(pathToPosix(path.dirname(path.join(process.cwd(), configFile)))) + expect(configFilenames).toEqual([filename]) + expect(configDirectory).toEqual(path.dirname(path.join(process.cwd(), configFile))) const { config, - } = await loadChecklyConfig(path.join(__dirname, 'fixtures', 'configs'), ['good-config.ts']) + } = await loadChecklyConfig(path.join(__dirname, 'fixtures', 'configs'), [filename]) expect(config).toMatchObject({ checks: { @@ -45,16 +46,38 @@ describe('loadChecklyConfig()', () => { }, }) }) - it('config TS file should export an object', async () => { - const configFile = './fixtures/configs/good-config.js' + it('config JS file should export an object', async () => { + const filename = 'good-config.js' + const configFile = `./fixtures/configs/${filename}` const { configDirectory, configFilenames } = splitConfigFilePath(configFile) - expect(configFilenames).toEqual(['good-config.js']) - expect(configDirectory).toEqual(pathToPosix(path.dirname(path.join(process.cwd(), configFile)))) + expect(configFilenames).toEqual([filename]) + expect(configDirectory).toEqual(path.dirname(path.join(process.cwd(), configFile))) + + const { + config, + } = await loadChecklyConfig(path.join(__dirname, 'fixtures', 'configs'), [filename]) + + expect(config).toMatchObject({ + checks: { + checkMatch: '**/*.check.ts', + browserChecks: { + testMatch: '**/__checks__/*.spec.ts', + }, + }, + }) + }) + it('config from absolute path', async () => { + const filename = 'good-config.ts' + const configFile = `./fixtures/configs/${filename}` + const { configDirectory, configFilenames } = splitConfigFilePath(path.join(process.cwd(), configFile)) + + expect(configFilenames).toEqual([filename]) + expect(configDirectory).toEqual(path.dirname(path.join(process.cwd(), configFile))) const { config, - } = await loadChecklyConfig(path.join(__dirname, 'fixtures', 'configs'), ['good-config.js']) + } = await loadChecklyConfig(path.join(__dirname, 'fixtures', 'configs'), [filename]) expect(config).toMatchObject({ checks: { diff --git a/packages/cli/src/services/util.ts b/packages/cli/src/services/util.ts index 653f9140..59e4127f 100644 --- a/packages/cli/src/services/util.ts +++ b/packages/cli/src/services/util.ts @@ -77,8 +77,15 @@ export function pathToPosix (relPath: string): string { } export function splitConfigFilePath (configFile?: string): { configDirectory: string, configFilenames?: string[] } { + if (configFile) { + const cwd = path.resolve(path.dirname(configFile)) + return { + configDirectory: cwd, + configFilenames: [path.basename(configFile)], + } + } return { - configDirectory: configFile ? pathToPosix(path.join(process.cwd(), path.dirname(configFile))) : process.cwd(), - configFilenames: configFile ? [path.basename(configFile)] : undefined, + configDirectory: process.cwd(), + configFilenames: undefined, } }