Skip to content

Commit 723b750

Browse files
committed
Use packages names instead of filepaths
1 parent 36c2936 commit 723b750

File tree

2 files changed

+32
-39
lines changed

2 files changed

+32
-39
lines changed

config/karma.saucelabs.js

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ const browserMap = {
4646
* Any special options per package.
4747
*/
4848
const packageConfigs = {
49-
messaging: {
49+
'@firebase/messaging': {
5050
// Messaging currently only supports these browsers.
5151
browsers: ['Chrome_Windows', 'Firefox_Windows', 'Edge_Windows']
5252
},
5353
// Firestore unit tests have OOM problems compiling with Babel for IE.
5454
// Firestore integration/firestore tests do run on all browsers.
55-
'packages/firestore': {
55+
'@firebase/firestore': {
5656
browsers: [
5757
'Chrome_Windows',
5858
'Firefox_Windows',
@@ -61,7 +61,7 @@ const packageConfigs = {
6161
]
6262
},
6363
// Installations has IE errors related to `idb` library that need to be figured out.
64-
installations: {
64+
'@firebase/installations': {
6565
browsers: [
6666
'Chrome_Windows',
6767
'Firefox_Windows',
@@ -76,14 +76,11 @@ const packageConfigs = {
7676
*
7777
* @param {string} packageName Name of package being tested (e.g., "firestore")
7878
*/
79-
function getSauceLabsBrowsers(packageName, packageType) {
80-
const packageConfig =
81-
packageConfigs[packageName] ||
82-
packageConfigs[`${packageType}/${packageName}`];
83-
if (packageConfig) {
79+
function getSauceLabsBrowsers(packageName) {
80+
if (packageConfigs[packageName]) {
8481
const filteredBrowserMap = {};
8582
for (const browserKey in browserMap) {
86-
if (packageConfig.browsers.includes(browserKey)) {
83+
if (packageConfigs[packageName].browsers.includes(browserKey)) {
8784
filteredBrowserMap[browserKey] = browserMap[browserKey];
8885
}
8986
}
@@ -98,12 +95,12 @@ function getSauceLabsBrowsers(packageName, packageType) {
9895
*/
9996
function getPackageLabels() {
10097
const match = testConfigFile.match(
101-
/([a-zA-Z]+)\/([a-zA-Z-]+)\/karma\.conf\.js/
98+
/([a-zA-Z]+\/[a-zA-Z-]+)\/karma\.conf\.js/
10299
);
103-
return {
104-
type: match[1],
105-
name: match[2]
106-
};
100+
const packagePath = match[1];
101+
const root = path.resolve(__dirname, '..');
102+
const pkg = require(path.join(root, packagePath, 'package.json'));
103+
return pkg.name;
107104
}
108105

109106
/**
@@ -113,22 +110,15 @@ function getPackageLabels() {
113110
*/
114111
function getTestFiles() {
115112
let root = path.resolve(__dirname, '..');
116-
const { name: packageName, type: packageType } = getPackageLabels();
113+
const { name: packageName } = getPackageLabels();
117114
let patterns = require(path.join(root, testConfigFile)).files;
118115
let dirname = path.dirname(testConfigFile);
119-
return {
120-
packageName,
121-
packageType,
122-
files: patterns.map(p => path.join(dirname, p))
123-
};
116+
return { packageName, files: patterns.map(p => path.join(dirname, p)) };
124117
}
125118

126119
function seleniumLauncher(browserName, platform, version) {
127-
const { name, type } = getPackageLabels();
128-
const testName =
129-
type === 'integration'
130-
? `${type}-${name}-${browserName}`
131-
: `${name}-${browserName}`;
120+
const { name } = getPackageLabels();
121+
const testName = `${name}-${browserName}`;
132122
return {
133123
base: 'SauceLabs',
134124
browserName: browserName,
@@ -164,12 +154,12 @@ function appiumLauncher(
164154
}
165155

166156
module.exports = function(config) {
167-
const { packageName, packageType, files: testFiles } = getTestFiles();
168-
const sauceLabsBrowsers = getSauceLabsBrowsers(packageName, packageType);
157+
const { packageName, files: testFiles } = getTestFiles();
158+
const sauceLabsBrowsers = getSauceLabsBrowsers(packageName);
169159

170160
const sauceLabsConfig = {
171-
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER + '-' + packageName,
172-
build: process.env.TRAVIS_BUILD_NUMBER || argv['buildNumber'],
161+
tunnelIdentifier: process.env.GITHUB_RUN_ID + '-' + packageName,
162+
build: process.env.GITHUB_RUN_ID || argv['buildNumber'],
173163
username: process.env.SAUCE_USERNAME,
174164
accessKey: process.env.SAUCE_ACCESS_KEY,
175165
startConnect: true,

scripts/run_saucelabs.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,10 @@ async function runTest(testFile) {
6565
const testFileDir =
6666
path.resolve(__dirname, '../') + '/' + path.dirname(testFile);
6767
const pkgPath = testFileDir + '/package.json';
68+
let pkgName = testFile;
6869
if (await exists(pkgPath)) {
6970
const pkg = require(pkgPath);
71+
pkgName = pkg.name;
7072
if (pkg.scripts.pretest) {
7173
await spawn('yarn', ['--cwd', testFileDir, 'pretest'], {
7274
stdio: 'inherit'
@@ -83,7 +85,7 @@ async function runTest(testFile) {
8385
console.log(
8486
chalk`{blue Running tests on memory-only build for integration/firestore.}`
8587
);
86-
const exitCode1 = await runKarma(testFile, 'memory');
88+
const exitCode1 = await runKarma(testFile, `${pkgName}-memory`);
8789
console.log(
8890
chalk`{blue Generating persistence build for integration/firestore.}`
8991
);
@@ -95,14 +97,20 @@ async function runTest(testFile) {
9597
console.log(
9698
chalk`{blue Running tests on persistence build for integration/firestore.}`
9799
);
98-
const exitCode2 = await runKarma(testFile, 'persistence');
100+
const exitCode2 = await runKarma(testFile, `${pkgName}-persistence`);
99101
return Math.max(exitCode1, exitCode2);
100102
} else {
101-
return runKarma(testFile);
103+
return runKarma(testFile, pkgName);
102104
}
103105
}
104106

105-
async function runKarma(testFile, testDescription) {
107+
/**
108+
* Runs the karma test command for one package.
109+
*
110+
* @param {string} testFile - path to karma.conf.js file
111+
* @param {string} testTag - package label for messages (usually package name)
112+
*/
113+
async function runKarma(testFile, testTag) {
106114
const karmaArgs = [
107115
'karma',
108116
'start',
@@ -123,11 +131,6 @@ async function runKarma(testFile, testDescription) {
123131
exitCode = code;
124132
});
125133

126-
let testTag = testFile;
127-
if (testDescription) {
128-
testTag += ` - ${testDescription}`;
129-
}
130-
131134
return promise
132135
.then(() => {
133136
console.log(chalk`{green [${testTag}] ******* DONE *******}`);
@@ -151,7 +154,7 @@ async function runNextTest(maxExitCode = 0, results = {}) {
151154
// When test queue is empty, exit with code 0 if no tests failed or
152155
// 1 if any tests failed.
153156
if (!testFiles.length) {
154-
for (const fileName in results) {
157+
for (const fileName of Object.keys(results)) {
155158
if (results[fileName] > 0) {
156159
console.log(`FAILED: ${fileName}`);
157160
}

0 commit comments

Comments
 (0)