strapi/test/helpers/test-app-generator.js

68 lines
1.8 KiB
JavaScript
Raw Normal View History

'use strict';
2019-03-06 19:19:33 +01:00
const path = require('path');
const rimraf = require('rimraf');
2021-04-29 13:51:12 +02:00
const generateNew = require('../../packages/generators/app/lib/generate-new');
2019-03-06 19:19:33 +01:00
// FIXME
/* eslint-disable import/extensions */
/**
* Delete the testApp folder
* @param {string} appName - name of the app / folder where the app is located
*/
2019-03-06 19:19:33 +01:00
const cleanTestApp = appName => {
return new Promise((resolve, reject) => {
rimraf(path.resolve(appName), err => {
if (err) reject(err);
2019-03-06 19:19:33 +01:00
resolve();
});
});
};
/**
* Runs strapi generate new
* @param {Object} options - Options
* @param {string} options.appName - Name of the app that will be created (also the name of the folder)
* @param {database} options.database - Arguments to create the testApp with the provided database params
*/
const generateTestApp = async ({ appName, database }) => {
const scope = {
2021-06-29 16:27:35 +02:00
database,
rootPath: path.resolve(appName),
name: appName,
// disable quickstart run app after creation
runQuickstartApp: false,
// use package version as strapiVersion (all packages have the same version);
2021-04-29 11:11:46 +02:00
strapiVersion: require('../../packages/core/strapi/package.json').version,
debug: false,
quick: false,
uuid: undefined,
deviceId: null,
// use yarn if available and --use-npm isn't true
useYarn: true,
installDependencies: false,
strapiDependencies: [
2021-04-29 13:51:12 +02:00
'@strapi/strapi',
'@strapi/admin',
'@strapi/utils',
'@strapi/plugin-content-type-builder',
'@strapi/plugin-content-manager',
'@strapi/plugin-users-permissions',
'@strapi/plugin-email',
'@strapi/plugin-upload',
'@strapi/plugin-graphql',
'@strapi/plugin-documentation',
'@strapi/plugin-i18n',
],
additionalsDependencies: {},
};
2019-04-16 18:05:12 +02:00
await generateNew(scope);
2019-03-06 19:19:33 +01:00
};
module.exports = {
cleanTestApp,
generateTestApp,
};