Skip to content

Commit

Permalink
Static karma config
Browse files Browse the repository at this point in the history
  • Loading branch information
Martyn Janes committed Jun 19, 2017
1 parent 932ccf4 commit f7680f8
Show file tree
Hide file tree
Showing 98 changed files with 1,039 additions and 1,126 deletions.
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
# v0.05
# v0.0.6
* Karma.conf is now static instead of dynamic so it can be run standalone
* Remap istanbul merged into karma.conf instead of separate gulp task
* module configurations can now distinguish between app and test modules
* Fixed package manager add used wrong working directory

# v0.0.5
* Added browserify support
* Added yarn support for clientPackages
* Sourcemap src location is now consitent for all loaders
* Webpack and Browserify Unit Tests use cajon loader instead of loading packs
* Fixed coverage report for Webpack and Browserify
* Fixed bug with missing preloadModules for SystemJS and RequireJS

# v0.04
# v0.0.4

* Output directory can be omitted which will use current directory
* If a unite.json exists in the output directory it will read the options from that and override based on command line
Expand Down
14 changes: 8 additions & 6 deletions dist/assets/gulp/tasks/browserify/build-bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const source = require('vinyl-source-stream');
const buffer = require('vinyl-buffer');
const sourceMaps = require('gulp-sourcemaps');
const uc = require('./util/unite-config');
const packageJson = require('../../package.json');
const merge = require('merge2');

gulp.task('build-bundle', function () {
Expand All @@ -26,11 +25,14 @@ gulp.task('build-bundle', function () {
debug: true
});

const vendorKeys = Object.keys(packageJson.dependencies);
if (vendorKeys && vendorKeys.length > 0) {
vendorKeys.forEach(function(vendor) {
bVendor.require(vendor);
bApp.exclude(vendor);
const appPackageKeys = Object.keys(uniteConfig.clientPackages).filter(function (key) {
return uniteConfig.clientPackages[key].includeMode === "app" || uniteConfig.clientPackages[key].includeMode === "both";
});

if (appPackageKeys && appPackageKeys.length > 0) {
appPackageKeys.forEach(function(appPackage) {
bVendor.require(appPackage);
bApp.exclude(appPackage);
});
}

Expand Down
10 changes: 0 additions & 10 deletions dist/assets/gulp/tasks/browserify/util/modules.js

This file was deleted.

15 changes: 9 additions & 6 deletions dist/assets/gulp/tasks/browserify/util/template.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,27 @@ const os = require('os');
const gulp = require('gulp');
const replace = require('gulp-replace');
const rename = require('gulp-rename');
const packageJson = require('../../../package.json');

function copyTemplate(templateFile, indexFile, moduleConfigFilename, uniteConfiguration, clientModulesFolder) {
function copyTemplate(templateFile, indexFile, moduleConfigFilename, uniteConfig, clientModulesFolder) {
let appName = "";
let staticIncludes = [];
let bodyAttributes = "";
let moduleConfig = "";
let bootstrap = [];

appName = uniteConfiguration.title;
appName = uniteConfig.title;

if (uniteConfiguration.staticClientModules) {
uniteConfiguration.staticClientModules.forEach(staticClientModule => {
if (uniteConfig.staticClientModules) {
uniteConfig.staticClientModules.forEach(staticClientModule => {
staticIncludes.push('<script src="./' + clientModulesFolder + '/' + staticClientModule + '"></script>');
});
}

if (Object.keys(packageJson.dependencies).length > 0) {
const appPackageKeys = Object.keys(uniteConfig.clientPackages).filter(function (key) {
return uniteConfig.clientPackages[key].includeMode === "app" || uniteConfig.clientPackages[key].includeMode === "both";
});

if (appPackageKeys.length > 0) {
moduleConfig += '<script src="./dist/vendor-bundle.js"></script>' + os.EOL + ' ';
}
moduleConfig += '<script src="./dist/app-bundle.js"></script>';
Expand Down
14 changes: 3 additions & 11 deletions dist/assets/gulp/tasks/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
*/
const display = require('./util/display');
const template = require('./util/template');
const modules = require('./util/modules');
const uc = require('./util/unite-config');
const buildTranspile = require('./build-transpile');
const buildBundle = require('./build-bundle');
Expand All @@ -15,7 +14,7 @@ const runSequence = require('run-sequence');

gulp.task('build-clean', (callback) => {
const uniteConfig = uc.getUniteConfig();
const toClean = path.resolve(uniteConfig.directories.dist);
const toClean = path.resolve(uniteConfig.directories.dist) + "**/!(app-module-config).js";
display.info('Cleaning', toClean);
return del(toClean, callback);
});
Expand All @@ -24,19 +23,12 @@ gulp.task('build-generate-index', () => {
display.info('Generating', "index.html from index.html.template");

const uniteConfig = uc.getUniteConfig();
const moduleConfig = path.join(uniteConfig.directories.dist, "module-config.js")
const moduleConfig = path.join(uniteConfig.directories.dist, "app-module-config.js")

return template.copyTemplate("index.html.template", "index.html", moduleConfig.replace(/\\/g, '/'), uniteConfig, "node_modules");
});

gulp.task('build-generate-module-config', (cb) => {
const uniteConfig = uc.getUniteConfig();

display.info('Generating Module Configuration', "module-config.js");
modules.createModuleConfig(path.join(uniteConfig.directories.dist, "module-config.js"), "index.html", uniteConfig, "node_modules", cb);
});

gulp.task('build', (cb) => {
runSequence('build-clean', 'build-transpile', 'build-bundle', 'build-generate-index', 'build-generate-module-config', cb);
runSequence('build-clean', 'build-transpile', 'build-bundle', 'build-generate-index', cb);
});

63 changes: 8 additions & 55 deletions dist/assets/gulp/tasks/karma/unit-runner.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,48 +2,16 @@
* Gulp tasks for unit testing TypeScript.
*/
const display = require('./util/display');
const uc = require('./util/unite-config');
const gulp = require('gulp');
const path = require('path');
const karma = require('karma');

gulp.task('unit-run-test', (done) => {
display.info('Running', 'Karma');

const uniteConfig = uc.getUniteConfig();

const serverOpts = {
singleRun: true,
frameworks: uniteConfig.testFrameworks,
reporters: ['story', 'coverage', 'html'],
browsers: ['PhantomJS'],
files: uniteConfig.testIncludes,
coverageReporter: {
reporters: [
{
type: 'json',
dir: uniteConfig.directories.reports,
subdir: '.'
}
]
},
htmlReporter: {
outputDir: uniteConfig.directories.reports,
reportName: 'unit'
},
preprocessors: {}
};

if (uniteConfig.testAppPreprocessors && uniteConfig.testAppPreprocessors.length > 0) {
const appDistFolder = path.join(uniteConfig.directories.dist, '**/*.js');
serverOpts.preprocessors[appDistFolder] = uniteConfig.testAppPreprocessors;
}
if (uniteConfig.testUnitPreprocessors && uniteConfig.testUnitPreprocessors.length > 0) {
const unitDistFolder = path.join(uniteConfig.directories.unitTestDist, '**/*.spec.js');
serverOpts.preprocessors[unitDistFolder] = uniteConfig.testUnitPreprocessors;
}

const server = new karma.Server(serverOpts, function (exitCode) {
const server = new karma.Server({
configFile: '../../../karma.conf.js',
}, function (exitCode) {
if (exitCode === 0) {
done();
} else {
Expand All @@ -57,26 +25,11 @@ gulp.task('unit-run-test', (done) => {
gulp.task('unit-run-test-ui', (done) => {
display.info('Running', 'Karma');

const uniteConfig = uc.getUniteConfig();

const serverOpts = {
singleRun: false,
frameworks: uniteConfig.testFrameworks,
browsers: ['Chrome'],
files: uniteConfig.testIncludes,
preprocessors: {}
};

if (uniteConfig.testAppPreprocessors && uniteConfig.testAppPreprocessors.length > 0) {
const appDistFolder = path.join(uniteConfig.directories.dist, '**/*.js');
serverOpts.preprocessors[appDistFolder] = uniteConfig.testAppPreprocessors;
}
if (uniteConfig.testUnitPreprocessors && uniteConfig.testUnitPreprocessors.length > 0) {
const unitDistFolder = path.join(uniteConfig.directories.unitTestDist, '**/*.spec.js');
serverOpts.preprocessors[unitDistFolder] = uniteConfig.testUnitPreprocessors;
}

const server = new karma.Server(serverOpts, function (exitCode) {
const server = new karma.Server({
configFile: '../../../karma.conf.js',
browsers: ['Chrome'],
singleRun: false
}, function (exitCode) {
if (exitCode === 0) {
done();
} else {
Expand Down
38 changes: 0 additions & 38 deletions dist/assets/gulp/tasks/requireJs/util/modules.js

This file was deleted.

8 changes: 7 additions & 1 deletion dist/assets/gulp/tasks/requireJs/util/template.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@ function copyTemplate(templateFile, indexFile, moduleConfigFilename, uniteConfig
moduleConfig = '<script src="./' + moduleConfigFilename + '"></script>';

bootstrap.push("<script>");
bootstrap.push("require(preloadModules, function() {");
bootstrap.push('var baseUrl = window.location.origin + window.location.pathname.replace(\'' + indexFile + '\', \'\');');
bootstrap.push('require.config({');
bootstrap.push(' baseUrl: baseUrl,');
bootstrap.push(' paths: appModuleConfig.paths,');
bootstrap.push(' packages: appModuleConfig.packages');
bootstrap.push('});');
bootstrap.push("require(appModuleConfig.preload, function() {");
bootstrap.push(" require(['dist/main'], function(main) {");
bootstrap.push(" main.entryPoint();");
bootstrap.push(" });");
Expand Down
43 changes: 0 additions & 43 deletions dist/assets/gulp/tasks/systemJs/util/modules.js

This file was deleted.

10 changes: 9 additions & 1 deletion dist/assets/gulp/tasks/systemJs/util/template.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,15 @@ function copyTemplate(templateFile, indexFile, moduleConfigFilename, uniteConfig
moduleConfig = '<script src="./' + moduleConfigFilename + '"></script>';

bootstrap.push("<script>");
bootstrap.push("Promise.all(preloadModules.map(function(module) { return SystemJS.import(module); })).then(function() {");
bootstrap.push('var baseUrl = window.location.origin + window.location.pathname.replace(\'' + indexFile + '\', \'\');');
bootstrap.push('var packages = unitModuleConfig.packages;');
bootstrap.push('packages[\'\'] = { defaultExtension: \'js\' };');
bootstrap.push('SystemJS.config({');
bootstrap.push(' baseUrl: baseUrl,');
bootstrap.push(' paths: appModuleConfig.paths,');
bootstrap.push(' packages: packages');
bootstrap.push('});');
bootstrap.push("Promise.all(appModuleConfig.preload.map(function(module) { return SystemJS.import(module); })).then(function() {");
bootstrap.push(" SystemJS.import('dist/main').then(function(main) {");
bootstrap.push(" main.entryPoint();");
bootstrap.push(" });");
Expand Down
23 changes: 0 additions & 23 deletions dist/assets/gulp/tasks/unit-report.js

This file was deleted.

3 changes: 1 addition & 2 deletions dist/assets/gulp/tasks/unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
const display = require('./util/display');
const uc = require('./util/unite-config');
const unitTranspile = require('./unit-transpile');
const unitReport = require('./unit-report');
const unitRunner = require('./unit-runner');
const gulp = require('gulp');
const path = require('path');
Expand All @@ -22,7 +21,7 @@ gulp.task('unit-clean', (callback) => {
});

gulp.task('unit', (cb) => {
runSequence('unit-clean', 'unit-transpile', 'unit-run-test', 'unit-report', cb);
runSequence('unit-clean', 'unit-transpile', 'unit-run-test', cb);
});

gulp.task('unit-ui', (cb) => {
Expand Down

0 comments on commit f7680f8

Please sign in to comment.