Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'saucelabs' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
return new Promise((resolve, reject) => {
const build = process.env.BUILD_NUMBER;
const account = new SauceLabs({
username: process.env.SAUCE_USERNAME,
password: process.env.SAUCE_ACCESS_KEY
});
const browserName = process.env.BROWSER || 'chrome';
const platform = process.env.PLATFORM || 'mac 10.12';
account.getJobs((err, jobs) => {
// Something terrible has happened if we cannot get jobs from sauce
if (err) {
reject(err);
}
const widgetJobs = jobs.filter((job) => job.build === build && job.name && job.name.includes(name) && job.status === 'in progress'
&& job.os.toLowerCase().includes(platform) && job.browser.toLowerCase().includes(browserName));
resolve(widgetJobs);
});
export function command() {
const saucelabs = new SauceLabs({
password: process.env.SAUCE_ACCESS_KEY,
username: process.env.SAUCE_USERNAME
});
const sessionid = this.capabilities['webdriver.remote.sessionid'];
const jobName = this.currentTest.name;
saucelabs.updateJob(sessionid, {
name: jobName,
passed: this.currentTest.results.failed === 0
}, () => {
// empty
});
this.end();
}
yargs.showHelp()
// eslint-disable-next-line no-console
console.error(ERROR_MISSING_CREDENTIALS)
return process.exit(1)
}
const status = ora(`Start performance test run with user ${username} on page ${config.site}...`).start()
const logDir = config.logDir
? path.resolve(process.cwd(), config.logDir)
: tmp.dirSync().name
/**
* check if job already exists
*/
const user = new SauceLabs({
user: username,
key: accessKey,
region: config.region
})
/**
* find if job already exists
*/
let job = null
try {
job = await user.listJobs(
username,
{ name: jobName, limit: 10 }
)
status.succeed()
} catch (e) {
const accessKey = argv.key || process.env.SAUCE_ACCESS_KEY
const config = getConfig(argv)
const budget = config ? config.budget : null
const metrics = budget ? getBudgetMetrics(budget) : getMetricParams(argv, budget)
/**
* check if username and access key are available
*/
if (!username || !accessKey) {
yargs.showHelp()
// eslint-disable-next-line no-console
console.error(ERROR_MISSING_CREDENTIALS)
return process.exit(1)
}
const user = new SauceLabs({
user: username,
key: accessKey,
region: argv.region
})
const status = ora(`Fetch job "${argv.jobName}" from ${username}`).start()
/**
* fetch job
*/
let job
try {
const { jobs } = await waitFor(
() => user.listJobs(
username,
{ name: argv.jobName, limit: 1 }
After(async function ({ pickle: { name }, result: { status } }) {
if (!this.local) {
const sauceApi = new SauceLabs({ user: SAUCELABS_USER, key: SAUCELABS_KEY });
// eslint-disable-next-line no-underscore-dangle
const jobId = (await this.driver.getSession()).id_;
const passed = 'passed' === status;
sauceApi.updateJob(SAUCELABS_USER, jobId, {
name: `${this.browser} - ${name}`,
passed,
});
if (!passed) {
console.info(`Failed test video: https://app.saucelabs.com/tests/${jobId}`);
}
}
this.driver.quit();
});
module.exports = async function unit(app, options = {}) {
let cwd = process.cwd();
// check sauce values
if (options.saucelabs) {
if (options['saucelabs.username']) {
process.env.SAUCE_USERNAME = options['saucelabs.username'];
}
if (options['saucelabs.key']) {
process.env.SAUCE_ACCESS_KEY = options['saucelabs.key'];
}
if (!process.env.SAUCE_USERNAME) {
throw 'Missing SAUCE_USERNAME variable.';
}
if (!process.env.SAUCE_ACCESS_KEY) {
throw 'Missing SAUCE_ACCESS_KEY variable.';
}
}
// Handle Karma custom context file option
const customContextFile = options['context'];
if (!process.env.hasOwnProperty('NODE_ENV')) {
// Set NODE_ENV environment variable.
app.log(colors.yellow('🔍 setting "test" environment.'));
process.env.NODE_ENV = 'test';
module.exports = async function unit(app, options = {}) {
let cwd = process.cwd();
// check sauce values
if (options.saucelabs) {
if (options['saucelabs.username']) {
process.env.SAUCE_USERNAME = options['saucelabs.username'];
}
if (options['saucelabs.key']) {
process.env.SAUCE_ACCESS_KEY = options['saucelabs.key'];
}
if (!process.env.SAUCE_USERNAME) {
throw 'Missing SAUCE_USERNAME variable.';
}
if (!process.env.SAUCE_ACCESS_KEY) {
throw 'Missing SAUCE_ACCESS_KEY variable.';
}
}
// Handle Karma custom context file option
const customContextFile = options['context'];
if (!process.env.hasOwnProperty('NODE_ENV')) {
// Set NODE_ENV environment variable.
app.log(colors.yellow('🔍 setting "test" environment.'));
module.exports = async function unit(app, options = {}) {
let cwd = process.cwd();
// check sauce values
if (options.saucelabs) {
if (options['saucelabs.username']) {
process.env.SAUCE_USERNAME = options['saucelabs.username'];
}
if (options['saucelabs.key']) {
process.env.SAUCE_ACCESS_KEY = options['saucelabs.key'];
}
if (!process.env.SAUCE_USERNAME) {
throw 'Missing SAUCE_USERNAME variable.';
}
if (!process.env.SAUCE_ACCESS_KEY) {
throw 'Missing SAUCE_ACCESS_KEY variable.';
}
}
// Handle Karma custom context file option
const customContextFile = options['context'];
module.exports = async function unit(app, options = {}) {
let cwd = process.cwd();
// check sauce values
if (options.saucelabs) {
if (options['saucelabs.username']) {
process.env.SAUCE_USERNAME = options['saucelabs.username'];
}
if (options['saucelabs.key']) {
process.env.SAUCE_ACCESS_KEY = options['saucelabs.key'];
}
if (!process.env.SAUCE_USERNAME) {
throw 'Missing SAUCE_USERNAME variable.';
}
if (!process.env.SAUCE_ACCESS_KEY) {
throw 'Missing SAUCE_ACCESS_KEY variable.';
}
}
// Handle Karma custom context file option
const customContextFile = options['context'];
if (!process.env.hasOwnProperty('NODE_ENV')) {
config.test_settings.default.screenshots.path = config.test_settings.default.screenshots.path || 'reports/e2e/screenshots';
}
} else {
// option.screenshots is false
config.test_settings.default.screenshots = { enabled: false };
}
}
}
let sauceConnectProcess;
if (options.saucelabs) {
// check sauce values
if (options['saucelabs.username']) {
process.env.SAUCE_USERNAME = options['saucelabs.username'];
}
if (options['saucelabs.key']) {
process.env.SAUCE_ACCESS_KEY = options['saucelabs.key'];
}
if (!process.env.SAUCE_USERNAME) {
app.log(colors.red('Missing SAUCE_USERNAME variable.'));
app.log(colors.grey('export a `SAUCE_USERNAME` environment variable or use the `--saucelabs.username` flag.'));
return global.Promise.reject();
}
if (!process.env.SAUCE_ACCESS_KEY) {
app.log(colors.red('Missing SAUCE_ACCESS_KEY variable.'));
app.log(colors.grey('export a `SAUCE_ACCESS_KEY` environment variable or use the `--saucelabs.key` flag.'));
return global.Promise.reject();
}
promise = promise.then(() => new global.Promise((resolve, reject) => {
// setup sauce connect for localhost tunnel
const sauceConnectLauncher = require('sauce-connect-launcher');
let scTask = app.log('Setting up sauce connect...', true);
sauceConnectLauncher({