strapi/test/e2e.js

89 lines
1.7 KiB
JavaScript
Raw Normal View History

'use strict';
const path = require('path');
2019-03-06 19:19:33 +01:00
const execa = require('execa');
const yargs = require('yargs');
const { cleanTestApp, generateTestApp } = require('./helpers/test-app-generator');
2019-03-06 19:19:33 +01:00
const appName = 'testApp';
const databases = {
mongo: {
client: 'mongo',
host: '127.0.0.1',
port: 27017,
database: 'strapi_test',
username: 'root',
password: 'strapi',
},
postgres: {
client: 'postgres',
host: '127.0.0.1',
port: 5432,
database: 'strapi_test',
username: 'strapi',
password: 'strapi',
},
mysql: {
client: 'mysql',
host: '127.0.0.1',
port: 3306,
database: 'strapi_test',
username: 'strapi',
password: 'strapi',
},
sqlite: {
client: 'sqlite',
filename: './tmp/data.db',
},
2019-03-06 19:19:33 +01:00
};
const runAllTests = async args => {
return execa('yarn', ['-s', 'test:e2e', ...args], {
stdio: 'inherit',
cwd: path.resolve(__dirname, '..'),
2019-03-06 19:19:33 +01:00
env: {
FORCE_COLOR: 1,
},
});
};
2019-08-05 09:10:00 +02:00
const main = async (database, args) => {
try {
await cleanTestApp(appName);
await generateTestApp({ appName, database });
2019-03-06 19:19:33 +01:00
await runAllTests(args).catch(() => {
process.stdout.write('Tests failed\n', () => {
2019-03-06 19:19:33 +01:00
process.exit(1);
});
});
process.exit(0);
} catch (error) {
process.stdout.write('Tests failed\n', () => {
2019-03-09 01:06:39 +01:00
process.exit(1);
});
}
2019-03-06 19:19:33 +01:00
};
yargs
.command(
2019-08-05 09:10:00 +02:00
'$0',
'run end to end tests',
yargs => {
2019-08-05 09:10:00 +02:00
yargs.option('database', {
alias: 'db',
describe: 'choose a database',
choices: Object.keys(databases),
2019-08-05 09:10:00 +02:00
default: 'sqlite',
});
},
2019-08-05 09:10:00 +02:00
argv => {
const { database, _: args } = argv;
main(databases[database], args);
2019-08-05 09:10:00 +02:00
}
)
.help().argv;