Skip to content

Commit 007ae51

Browse files
committed
add specs
1 parent ace87ce commit 007ae51

File tree

5 files changed

+106
-25
lines changed

5 files changed

+106
-25
lines changed

bin/helpers/capabilityHelper.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ const validate = (bsConfig, args) => {
246246
}
247247

248248
// check if two config files are present at the same location
249-
let cypressFileDirectory = path.dirname(cypressConfigFilePath);
249+
let cypressFileDirectory = path.dirname(path.resolve(bsConfig.run_settings.cypressConfigFilePath));
250250
let listOfFiles = fs.readdirSync(cypressFileDirectory);
251251
let configFilesPresent = [];
252252
for (const possibleCypressFileName of Constants.CYPRESS_CONFIG_FILE_NAMES) {
@@ -255,8 +255,8 @@ const validate = (bsConfig, args) => {
255255
}
256256
}
257257

258-
if (configFilesPresent.length === 0) reject(Constants.validationMessages.CYPRESS_CONFIG_FILE_NOT_FOUND)
259-
if (configFilesPresent.length > 1) {
258+
if (configFilesPresent.length === 0 && bsConfig.run_settings.cypress_config_filename !== 'false') reject(Constants.validationMessages.CYPRESS_CONFIG_FILE_NOT_FOUND)
259+
if (configFilesPresent.length > 1 && bsConfig.run_settings.cypress_config_filename !== 'false') {
260260
logger.warn(`We found the following cypress config files ${configFilesPresent.join(', ')} at this location: ${cypressFileDirectory}`);
261261
reject(Constants.validationMessages.MORE_THAN_ONE_CYPRESS_CONFIG_FILE_FOUND);
262262
}

test/unit/bin/commands/runs.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ describe("runs", () => {
9494
setAccessKeyStub = sandbox.stub();
9595
setBuildNameStub = sandbox.stub();
9696
setCypressConfigFilenameStub = sandbox.stub();
97+
setCypressTestSuiteTypeStub = sandbox.stub();
9798
setUserSpecsStub = sandbox.stub();
9899
setTestEnvsStub = sandbox.stub();
99100
setSystemEnvsStub = sandbox.stub();
@@ -145,6 +146,7 @@ describe("runs", () => {
145146
setAccessKey: setAccessKeyStub,
146147
setBuildName: setBuildNameStub,
147148
setCypressConfigFilename: setCypressConfigFilenameStub,
149+
setCypressTestSuiteType: setCypressTestSuiteTypeStub,
148150
setUserSpecs: setUserSpecsStub,
149151
setTestEnvs: setTestEnvsStub,
150152
getConfigPath: getConfigPathStub,
@@ -197,6 +199,7 @@ describe("runs", () => {
197199
sinon.assert.calledOnce(setAccessKeyStub);
198200
sinon.assert.calledOnce(setBuildNameStub);
199201
sinon.assert.calledOnce(setCypressConfigFilenameStub);
202+
sinon.assert.calledOnce(setCypressTestSuiteTypeStub);
200203
sinon.assert.calledOnce(setUserSpecsStub);
201204
sinon.assert.calledOnce(setTestEnvsStub);
202205
sinon.assert.calledOnce(setSystemEnvsStub);
@@ -245,6 +248,7 @@ describe("runs", () => {
245248
getConfigPathStub = sandbox.stub();
246249
setBuildNameStub = sandbox.stub();
247250
setCypressConfigFilenameStub = sandbox.stub();
251+
setCypressTestSuiteTypeStub = sandbox.stub();
248252
setUserSpecsStub = sandbox.stub();
249253
setTestEnvsStub = sandbox.stub();
250254
setSystemEnvsStub = sandbox.stub();
@@ -303,6 +307,7 @@ describe("runs", () => {
303307
setAccessKey: setAccessKeyStub,
304308
setBuildName: setBuildNameStub,
305309
setCypressConfigFilename: setCypressConfigFilenameStub,
310+
setCypressTestSuiteType: setCypressTestSuiteTypeStub,
306311
setUserSpecs: setUserSpecsStub,
307312
setTestEnvs: setTestEnvsStub,
308313
setUsageReportingFlag: setUsageReportingFlagStub,
@@ -372,6 +377,7 @@ describe("runs", () => {
372377
sinon.assert.calledOnce(setBuildNameStub);
373378
sinon.assert.calledOnce(setLocalConfigFileStub);
374379
sinon.assert.calledOnce(setCypressConfigFilenameStub);
380+
sinon.assert.calledOnce(setCypressTestSuiteTypeStub);
375381
sinon.assert.calledOnce(getNumberOfSpecFilesStub);
376382
sinon.assert.calledOnce(getParallelsStub);
377383
sinon.assert.calledOnce(setParallelsStub);
@@ -424,6 +430,7 @@ describe("runs", () => {
424430
setAccessKeyStub = sandbox.stub();
425431
setBuildNameStub = sandbox.stub();
426432
setCypressConfigFilenameStub = sandbox.stub();
433+
setCypressTestSuiteTypeStub = sandbox.stub();
427434
setUserSpecsStub = sandbox.stub();
428435
setTestEnvsStub = sandbox.stub();
429436
setSystemEnvsStub = sandbox.stub();
@@ -484,6 +491,7 @@ describe("runs", () => {
484491
setAccessKey: setAccessKeyStub,
485492
setBuildName: setBuildNameStub,
486493
setCypressConfigFilename: setCypressConfigFilenameStub,
494+
setCypressTestSuiteType: setCypressTestSuiteTypeStub,
487495
setUserSpecs: setUserSpecsStub,
488496
setTestEnvs: setTestEnvsStub,
489497
setSystemEnvs: setSystemEnvsStub,
@@ -558,6 +566,7 @@ describe("runs", () => {
558566
sinon.assert.calledOnce(setLocalModeStub);
559567
sinon.assert.calledOnce(setLocalConfigFileStub);
560568
sinon.assert.calledOnce(getNumberOfSpecFilesStub);
569+
sinon.assert.calledOnce(setCypressTestSuiteTypeStub);
561570
sinon.assert.calledOnce(getParallelsStub);
562571
sinon.assert.calledOnce(setParallelsStub);
563572
sinon.assert.calledOnce(warnSpecLimitStub);
@@ -611,6 +620,7 @@ describe("runs", () => {
611620
setAccessKeyStub = sandbox.stub();
612621
setBuildNameStub = sandbox.stub();
613622
setCypressConfigFilenameStub = sandbox.stub();
623+
setCypressTestSuiteTypeStub = sandbox.stub();
614624
setUserSpecsStub = sandbox.stub();
615625
setTestEnvsStub = sandbox.stub();
616626
setSystemEnvsStub = sandbox.stub();
@@ -673,6 +683,7 @@ describe("runs", () => {
673683
setAccessKey: setAccessKeyStub,
674684
setBuildName: setBuildNameStub,
675685
setCypressConfigFilename: setCypressConfigFilenameStub,
686+
setCypressTestSuiteType: setCypressTestSuiteTypeStub,
676687
setUserSpecs: setUserSpecsStub,
677688
setTestEnvs: setTestEnvsStub,
678689
setSystemEnvs: setSystemEnvsStub,
@@ -812,6 +823,7 @@ describe("runs", () => {
812823
setBuildNameStub = sandbox.stub();
813824
generateUniqueHashStub = sandbox.stub().returns('random_hash');
814825
setCypressConfigFilenameStub = sandbox.stub();
826+
setCypressTestSuiteTypeStub = sandbox.stub();
815827
setUserSpecsStub = sandbox.stub();
816828
setTestEnvsStub = sandbox.stub();
817829
setSystemEnvsStub = sandbox.stub();
@@ -887,6 +899,7 @@ describe("runs", () => {
887899
setAccessKey: setAccessKeyStub,
888900
setBuildName: setBuildNameStub,
889901
setCypressConfigFilename: setCypressConfigFilenameStub,
902+
setCypressTestSuiteType: setCypressTestSuiteTypeStub,
890903
setUserSpecs: setUserSpecsStub,
891904
setTestEnvs: setTestEnvsStub,
892905
setSystemEnvs: setSystemEnvsStub,
@@ -993,6 +1006,7 @@ describe("runs", () => {
9931006
sinon.assert.calledOnce(setLocalConfigFileStub);
9941007
sinon.assert.calledOnce(capabilityValidatorStub);
9951008
sinon.assert.calledOnce(getNumberOfSpecFilesStub);
1009+
sinon.assert.calledOnce(setCypressTestSuiteTypeStub);
9961010
sinon.assert.calledOnce(getParallelsStub);
9971011
sinon.assert.calledOnce(setParallelsStub);
9981012
sinon.assert.calledOnce(warnSpecLimitStub);

test/unit/bin/helpers/capabilityHelper.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,8 @@ describe("capabilityHelper.js", () => {
594594
],
595595
run_settings: {
596596
cypress_proj_dir: "random path",
597-
cypressConfigFilePath: "random path"
597+
cypressConfigFilePath: "random path",
598+
cypress_config_filename: "false"
598599
},
599600
connection_settings: {local: false}
600601
};
@@ -898,7 +899,7 @@ describe("capabilityHelper.js", () => {
898899
});
899900
});
900901

901-
it("validate bsConfig.run_settings.cypress_proj_dir", () => {
902+
it("validate bsConfig.run_settings.cypress_config_file", () => {
902903
let bsConfig = {
903904
auth: {},
904905
browsers: [
@@ -919,7 +920,7 @@ describe("capabilityHelper.js", () => {
919920
.catch((error) => {
920921
chai.assert.equal(
921922
error,
922-
Constants.validationMessages.EMPTY_CYPRESS_PROJ_DIR
923+
Constants.validationMessages.EMPTY_CYPRESS_CONFIG_FILE
923924
);
924925
});
925926
});

test/unit/bin/helpers/usageReporting.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ get_version = usageReporting.__get__("get_version");
2626
ci_environment = usageReporting.__get__("ci_environment");
2727
local_cypress_version = usageReporting.__get__("local_cypress_version");
2828
bstack_json_found_in_pwd = usageReporting.__get__("bstack_json_found_in_pwd");
29-
cypress_json_found_in_pwd = usageReporting.__get__("cypress_json_found_in_pwd");
29+
cypress_config_file_found_in_pwd = usageReporting.__get__("cypress_config_file_found_in_pwd");
3030
npm_global_path = usageReporting.__get__("npm_global_path");
3131
cli_version_and_path = usageReporting.__get__("cli_version_and_path");
3232
redactKeys = usageReporting.__get__("redactKeys");
@@ -184,7 +184,7 @@ describe("usageReporting", () => {
184184
});
185185
});
186186

187-
describe("cypress_json_found_in_pwd", () => {
187+
describe("cypress_config_file_found_in_pwd", () => {
188188
var sandbox;
189189

190190
before(() => {
@@ -199,7 +199,7 @@ describe("usageReporting", () => {
199199
it("should return true file exists", () => {
200200
let existsSyncStub = sandbox.stub(fs, "existsSync").returns(true);
201201

202-
let result = cypress_json_found_in_pwd();
202+
let result = cypress_config_file_found_in_pwd("file");
203203
sinon.assert.calledOnce(existsSyncStub);
204204
assert.equal(result, true);
205205

@@ -209,7 +209,7 @@ describe("usageReporting", () => {
209209
it("should return false if file doesn not exist", () => {
210210
let existsSyncStub = sandbox.stub(fs, "existsSync").returns(false);
211211

212-
let result = cypress_json_found_in_pwd();
212+
let result = cypress_config_file_found_in_pwd("file");
213213
sinon.assert.calledOnce(existsSyncStub);
214214
assert.equal(result, false);
215215

@@ -221,7 +221,7 @@ describe("usageReporting", () => {
221221
.stub(fs, "existsSync")
222222
.yields(new Error("random error"));
223223

224-
let result = cypress_json_found_in_pwd();
224+
let result = cypress_config_file_found_in_pwd("file");
225225
sinon.assert.calledOnce(existsSyncStub);
226226
expect(result).to.be.null;
227227

test/unit/bin/helpers/utils.js

Lines changed: 80 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ const utils = require('../../../../bin/helpers/utils'),
2020
config = require('../../../../bin/helpers/config'),
2121
fileHelpers = require('../../../../bin/helpers/fileHelpers'),
2222
testObjects = require('../../support/fixtures/testObjects'),
23-
syncLogger = require('../../../../bin/helpers/logger').syncCliLogger;
23+
syncLogger = require('../../../../bin/helpers/logger').syncCliLogger,
24+
Contants = require('../../../../bin/helpers/constants');
2425
const browserstack = require('browserstack-local');
2526
chai.use(chaiAsPromised);
2627
logger.transports['console.info'].silent = true;
@@ -1782,18 +1783,24 @@ describe('utils', () => {
17821783
},
17831784
};
17841785

1786+
args = {};
1787+
1788+
sinon.stub(fs, 'existsSync').returns(true);
1789+
17851790
utils.setCypressConfigFilename(bsConfig, args);
17861791

17871792
expect(bsConfig.run_settings.cypress_config_file).to.be.eq(
1788-
args.cypressConfigFile
1793+
path.join(bsConfig.run_settings.cypress_proj_dir, 'cypress.json')
17891794
);
17901795
expect(bsConfig.run_settings.cypress_config_filename).to.be.eq(
1791-
path.basename(args.cypressConfigFile)
1796+
path.basename(path.join(bsConfig.run_settings.cypress_proj_dir, 'cypress.json'))
17921797
);
17931798
expect(bsConfig.run_settings.userProvidedCypessConfigFile).to.be.false;
17941799
expect(bsConfig.run_settings.cypressConfigFilePath).to.be.eq(
17951800
path.join(bsConfig.run_settings.cypress_proj_dir, 'cypress.json')
17961801
);
1802+
1803+
fs.existsSync.restore();
17971804
});
17981805

17991806
it('does not have user provided ccf flag, sets from config file', () => {
@@ -1824,6 +1831,65 @@ describe('utils', () => {
18241831
});
18251832
});
18261833

1834+
describe('setCypressTestSuiteType', () => {
1835+
1836+
it('sets correct cypressTestSuiteType when cypress.json is the cypress config file ', () => {
1837+
bsConfig = {
1838+
run_settings: {
1839+
cypressConfigFilePath: 'cypress.json',
1840+
},
1841+
};
1842+
1843+
utils.setCypressTestSuiteType(bsConfig);
1844+
1845+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V9_AND_OLDER_TYPE);
1846+
});
1847+
1848+
it('sets correct cypressTestSuiteType when cypress.config.js|.ts|.cjs|.mjs is the cypress config file ', () => {
1849+
bsConfig = {
1850+
run_settings: {
1851+
cypressConfigFilePath: 'cypress.config.js',
1852+
},
1853+
};
1854+
utils.setCypressTestSuiteType(bsConfig);
1855+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V10_AND_ABOVE_TYPE);
1856+
1857+
bsConfig = {
1858+
run_settings: {
1859+
cypressConfigFilePath: 'cypress.config.ts',
1860+
},
1861+
};
1862+
utils.setCypressTestSuiteType(bsConfig);
1863+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V10_AND_ABOVE_TYPE);
1864+
1865+
bsConfig = {
1866+
run_settings: {
1867+
cypressConfigFilePath: 'cypress.config.cjs',
1868+
},
1869+
};
1870+
utils.setCypressTestSuiteType(bsConfig);
1871+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V10_AND_ABOVE_TYPE);
1872+
1873+
bsConfig = {
1874+
run_settings: {
1875+
cypressConfigFilePath: 'cypress.config.mjs',
1876+
},
1877+
};
1878+
utils.setCypressTestSuiteType(bsConfig);
1879+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V10_AND_ABOVE_TYPE);
1880+
});
1881+
1882+
it('by default assumes that CYPRESS_V9_AND_OLDER_TYPE is the test suite type', () => {
1883+
bsConfig = {
1884+
run_settings: {
1885+
cypressConfigFilePath: 'anyOtherFile.js',
1886+
},
1887+
};
1888+
utils.setCypressTestSuiteType(bsConfig);
1889+
expect(bsConfig.run_settings.cypressTestSuiteType).to.be.eq(Contants.CYPRESS_V9_AND_OLDER_TYPE);
1890+
});
1891+
});
1892+
18271893
describe('verifyGeolocationOption', () => {
18281894
let utilsearchForOptionGeolocationStub, userOption, testOption;
18291895

@@ -2652,7 +2718,7 @@ describe('utils', () => {
26522718
});
26532719
});
26542720

2655-
describe('getCypressJSON', () => {
2721+
describe('getCypressConfigFile', () => {
26562722
let sampleJson = {
26572723
a: 'b',
26582724
};
@@ -2669,7 +2735,7 @@ describe('utils', () => {
26692735
let bsConfig = {
26702736
run_settings: {},
26712737
};
2672-
expect(utils.getCypressJSON(bsConfig)).to.be.eql(undefined);
2738+
expect(utils.getCypressConfigFile(bsConfig)).to.be.eql(undefined);
26732739
});
26742740

26752741
it('read file and return json if param present', () => {
@@ -2679,7 +2745,7 @@ describe('utils', () => {
26792745
},
26802746
};
26812747

2682-
expect(utils.getCypressJSON(bsConfig)).to.be.eql(sampleJson);
2748+
expect(utils.getCypressConfigFile(bsConfig)).to.be.eql(sampleJson);
26832749
});
26842750
});
26852751

@@ -3179,13 +3245,13 @@ describe('utils', () => {
31793245
});
31803246

31813247
describe("#setProjectId", () => {
3182-
let getCypressJSONStub;
3248+
let getCypressConfigFileStub;
31833249
beforeEach(() => {
3184-
getCypressJSONStub = sinon.stub(utils, 'getCypressJSON');
3250+
getCypressConfigFileStub = sinon.stub(utils, 'getCypressConfigFile');
31853251
});
31863252

31873253
afterEach(() => {
3188-
getCypressJSONStub.restore();
3254+
getCypressConfigFileStub.restore();
31893255
});
31903256

31913257
it("prioritizes projectId passed in the args", () => {
@@ -3198,7 +3264,7 @@ describe('utils', () => {
31983264
projectId: "def"
31993265
}
32003266
process.env.CYPRESS_PROJECT_ID = "jkl"
3201-
getCypressJSONStub.returns({ projectId: "ghi" })
3267+
getCypressConfigFileStub.returns({ projectId: "ghi" })
32023268
expect(utils.setProjectId(bsConfig, args)).to.eq("def")
32033269
delete process.env.CYPRESS_PROJECT_ID;
32043270
});
@@ -3211,7 +3277,7 @@ describe('utils', () => {
32113277
}
32123278
let args = {};
32133279
process.env.CYPRESS_PROJECT_ID = "jkl"
3214-
getCypressJSONStub.returns({ projectId: "ghi" })
3280+
getCypressConfigFileStub.returns({ projectId: "ghi" })
32153281
expect(utils.setProjectId(bsConfig, args)).to.eq("jkl")
32163282
delete process.env.CYPRESS_PROJECT_ID;
32173283
});
@@ -3223,7 +3289,7 @@ describe('utils', () => {
32233289
}
32243290
}
32253291
let args = {};
3226-
getCypressJSONStub.returns({ projectId: "ghi" })
3292+
getCypressConfigFileStub.returns({ projectId: "ghi" })
32273293
expect(utils.setProjectId(bsConfig, args)).to.eq("abc")
32283294
});
32293295

@@ -3232,7 +3298,7 @@ describe('utils', () => {
32323298
run_settings: {}
32333299
}
32343300
let args = {}
3235-
getCypressJSONStub.returns({ projectId: "ghi" })
3301+
getCypressConfigFileStub.returns({ projectId: "ghi" })
32363302
expect(utils.setProjectId(bsConfig, args)).to.eq("ghi")
32373303
});
32383304

@@ -3241,7 +3307,7 @@ describe('utils', () => {
32413307
run_settings: {}
32423308
}
32433309
let args = {}
3244-
getCypressJSONStub.returns({})
3310+
getCypressConfigFileStub.returns({})
32453311
expect(utils.setProjectId(bsConfig, args)).to.eq(undefined)
32463312
});
32473313
});

0 commit comments

Comments
 (0)