strapi/test/create-test-app.js

81 lines
1.6 KiB
JavaScript
Raw Normal View History

'use strict';
2022-03-25 09:02:19 +01:00
process.env.NODE_ENV = 'test';
2019-05-06 19:48:49 +02:00
const yargs = require('yargs');
const { cleanTestApp, generateTestApp } = require('./test-app-generator');
2019-03-06 19:19:33 +01:00
const appName = 'testApp';
const databases = {
postgres: {
client: 'postgres',
2021-06-29 16:27:35 +02:00
connection: {
host: '127.0.0.1',
port: 5432,
database: 'strapi_test',
username: 'strapi',
password: 'strapi',
2022-11-17 12:24:58 +01:00
schema: 'myschema',
2021-06-29 16:27:35 +02:00
},
},
mysql: {
client: 'mysql',
2021-06-29 16:27:35 +02:00
connection: {
host: '127.0.0.1',
port: 3306,
database: 'strapi-test',
username: 'root',
password: 'root',
},
},
sqlite: {
client: 'sqlite',
2021-06-29 16:27:35 +02:00
connection: {
filename: './tmp/data.db',
},
useNullAsDefault: true,
},
2019-03-06 19:19:33 +01:00
};
2022-08-08 23:33:39 +02:00
const main = async (database) => {
2019-03-06 19:19:33 +01:00
try {
await cleanTestApp(appName);
await generateTestApp({ appName, database });
} catch (error) {
console.error(error);
process.exit(1);
}
};
2022-08-08 23:33:39 +02:00
// eslint-disable-next-line no-unused-expressions
2019-05-06 19:48:49 +02:00
yargs
.command(
'$0 [databaseName]',
'Create test app',
2022-08-08 23:33:39 +02:00
(yarg) => {
yarg.positional('databaseName', {
2019-05-06 19:48:49 +02:00
choices: Object.keys(databases),
});
},
2022-08-08 23:33:39 +02:00
(argv) => {
2019-07-18 16:56:49 +02:00
const { databaseName } = argv;
if (databaseName) {
return main(databases[databaseName]);
}
2019-07-18 16:56:49 +02:00
return main({
client: argv.dbclient,
2021-08-10 19:06:33 +02:00
connection: {
host: argv.dbhost,
port: argv.dbport,
database: argv.dbname,
username: argv.dbusername,
password: argv.dbpassword,
filename: argv.dbfile,
},
2019-07-18 16:56:49 +02:00
});
}
2019-05-06 19:48:49 +02:00
)
.help().argv;