@elsikora/setup-wizard
Version:
Setup Wizard - CLI scaffolding utility
130 lines (127 loc) • 5.32 kB
JavaScript
#!/usr/bin/env node
import { ETestingFramework } from '../../../domain/enum/testing-framework.enum.js';
import { TESTING_VITE_TSCONFIG_PATHS_PACKAGE_NAME, TESTING_VITEST_COVERAGE_V8_PACKAGE_NAME, TESTING_VITEST_PACKAGE_NAME, TESTING_VITEST_UI_PACKAGE_NAME, TESTING_TS_NODE_PACKAGE_NAME, TESTING_NYC_PACKAGE_NAME, TESTING_MOCHA_PACKAGE_NAME, TESTING_MOCHA_TYPES_PACKAGE_NAME, TESTING_CHAI_PACKAGE_NAME, TESTING_CHAI_TYPES_PACKAGE_NAME, TESTING_TS_JEST_PACKAGE_NAME, TESTING_JEST_COVERAGE_PACKAGE_NAME, TESTING_JEST_PACKAGE_NAME, TESTING_JEST_TYPES_PACKAGE_NAME, TESTING_JASMINE_PACKAGE_NAME, TESTING_JASMINE_TYPES_PACKAGE_NAME } from './package-names.constant.js';
/**
* Configuration for different testing frameworks.
* Provides framework-specific settings and dependencies.
*/
const TESTING_FRAMEWORK_CONFIG = {
[ETestingFramework.JASMINE]: {
configFiles: {
e2e: "jasmine.e2e.json",
unit: "jasmine.json",
},
configGenerator: {
imports: {
base: "",
typescript: "",
},
plugins: {
typescript: "",
},
},
coreDependencies: [TESTING_JASMINE_PACKAGE_NAME, TESTING_JASMINE_TYPES_PACKAGE_NAME],
description: "Behavior-driven testing framework",
name: "Jasmine",
optionalDependencies: {
coverage: TESTING_NYC_PACKAGE_NAME,
typescript: TESTING_TS_NODE_PACKAGE_NAME,
},
scripts: {
testE2e: "jasmine --config=jasmine.e2e.json",
testE2eWatch: "nodemon --exec 'jasmine --config=jasmine.e2e.json'",
testUnit: "jasmine --config=jasmine.json",
testUnitCoverage: "nyc jasmine --config=jasmine.json",
testUnitWatch: "nodemon --exec 'jasmine --config=jasmine.json'",
},
},
[ETestingFramework.JEST]: {
configFiles: {
e2e: "jest.e2e.config.js",
unit: "jest.config.js",
},
configGenerator: {
imports: {
base: "",
typescript: "",
},
plugins: {
typescript: "",
},
},
coreDependencies: [TESTING_JEST_PACKAGE_NAME, TESTING_JEST_TYPES_PACKAGE_NAME],
description: "Delightful JavaScript testing framework",
name: "Jest",
optionalDependencies: {
coverage: TESTING_JEST_COVERAGE_PACKAGE_NAME,
typescript: TESTING_TS_JEST_PACKAGE_NAME,
},
scripts: {
testE2e: "jest --config jest.e2e.config.js",
testE2eWatch: "jest --watch --config jest.e2e.config.js",
testUnit: "jest --config jest.config.js",
testUnitCoverage: "jest --coverage --config jest.config.js",
testUnitWatch: "jest --watch --config jest.config.js",
},
},
[ETestingFramework.MOCHA]: {
configFiles: {
e2e: ".mocharc.e2e.json",
unit: ".mocharc.json",
},
configGenerator: {
imports: {
base: "",
typescript: "",
},
plugins: {
typescript: "",
},
},
coreDependencies: [TESTING_MOCHA_PACKAGE_NAME, TESTING_MOCHA_TYPES_PACKAGE_NAME, TESTING_CHAI_PACKAGE_NAME, TESTING_CHAI_TYPES_PACKAGE_NAME],
description: "Feature-rich JavaScript test framework",
name: "Mocha",
optionalDependencies: {
coverage: TESTING_NYC_PACKAGE_NAME,
typescript: TESTING_TS_NODE_PACKAGE_NAME,
},
scripts: {
testE2e: "mocha 'test/e2e/**/*.test.js'",
testE2eWatch: "mocha --watch 'test/e2e/**/*.test.js'",
testUnit: "mocha 'test/unit/**/*.test.js'",
testUnitCoverage: "nyc mocha 'test/unit/**/*.test.js'",
testUnitWatch: "mocha --watch 'test/unit/**/*.test.js'",
},
},
[ETestingFramework.VITEST]: {
configFiles: {
e2e: "vitest.e2e.config.js",
unit: "vitest.unit.config.js",
},
configGenerator: {
imports: {
base: 'import { defineConfig } from "vitest/config";',
typescript: 'import tsconfigPaths from "vite-tsconfig-paths";',
},
plugins: {
typescript: "tsconfigPaths()",
},
},
coreDependencies: [TESTING_VITEST_PACKAGE_NAME, TESTING_VITEST_UI_PACKAGE_NAME],
description: "Fast unit test framework powered by Vite",
name: "Vitest",
optionalDependencies: {
coverage: TESTING_VITEST_COVERAGE_V8_PACKAGE_NAME,
typescript: TESTING_VITE_TSCONFIG_PATHS_PACKAGE_NAME,
},
scripts: {
testE2e: "vitest run test/e2e --config vitest.e2e.config.js",
testE2eWatch: "vitest test/e2e --config vitest.e2e.config.js",
testUnit: "vitest run test/unit --config vitest.unit.config.js",
testUnitCoverage: "vitest run test/unit --config vitest.unit.config.js --coverage",
testUnitWatch: "vitest test/unit --config vitest.unit.config.js",
},
},
};
export { TESTING_FRAMEWORK_CONFIG };
//# sourceMappingURL=testing-framework-config.constant.js.map