mirror of
https://github.com/nasa/openmct.git
synced 2025-04-07 03:16:55 +00:00
[Tests] Initial spec runner
Initial spec runner; looks in bundles, assumes conventions. Supports initial repository set up and build scripts, for WTD-519.
This commit is contained in:
parent
a753818b24
commit
0bf0912bf8
3
bundles.json
Normal file
3
bundles.json
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
"platform/framework"
|
||||
]
|
23
platform/framework/src/Temporary.js
Normal file
23
platform/framework/src/Temporary.js
Normal file
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Created by vwoeltje on 10/30/14.
|
||||
*/
|
||||
|
||||
|
||||
/*global define*/
|
||||
|
||||
define(
|
||||
[],
|
||||
function () {
|
||||
"use strict";
|
||||
|
||||
function Temporary() {
|
||||
return {
|
||||
someMethod: function () {
|
||||
return "returnValue";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return Temporary;
|
||||
}
|
||||
);
|
17
platform/framework/test/TemporarySpec.js
Normal file
17
platform/framework/test/TemporarySpec.js
Normal file
@ -0,0 +1,17 @@
|
||||
/*global define,describe,it,expect*/
|
||||
|
||||
define(
|
||||
["../src/Temporary"],
|
||||
function (Temporary) {
|
||||
"use strict";
|
||||
|
||||
describe("Temporary class", function () {
|
||||
var temporary = new Temporary();
|
||||
|
||||
it("has a method with a return value", function () {
|
||||
expect(temporary.someMethod()).toEqual("returnValue");
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
);
|
3
platform/framework/test/suite.json
Normal file
3
platform/framework/test/suite.json
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
"Temporary"
|
||||
]
|
142
test.html
142
test.html
@ -1,13 +1,135 @@
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="css/lib/jasmine.css">
|
||||
<script type = "text/javascript"
|
||||
src = "../js/lib/require.js"
|
||||
data-main = "js/main">
|
||||
<head>
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="platform/framework/test/lib/css/jasmine.css">
|
||||
<script type="text/javascript"
|
||||
src="platform/framework/lib/require.js">
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
require(
|
||||
{
|
||||
paths: {
|
||||
'jasmine': 'platform/framework/test/lib/jasmine',
|
||||
'jasmine-html': 'platform/framework/test/lib/jasmine-html',
|
||||
'blanket-jasmine': 'platform/framework/test/lib/blanket_jasmine',
|
||||
'console-runner': 'platform/framework/test/lib/console-runner'
|
||||
},
|
||||
shim: {
|
||||
'jasmine': {
|
||||
'exports': 'jasmine'
|
||||
},
|
||||
'jasmine-html': {
|
||||
'exports': 'jasmine',
|
||||
'deps': ['jasmine']
|
||||
},
|
||||
'console-runner': {
|
||||
'exports': 'jasmine',
|
||||
'deps': ['jasmine']
|
||||
},
|
||||
'blanket-jasmine': {
|
||||
'exports': 'blanket',
|
||||
'deps': ['jasmine']
|
||||
}
|
||||
}
|
||||
},
|
||||
[
|
||||
'blanket-jasmine',
|
||||
'jasmine-html',
|
||||
'console-runner'
|
||||
],
|
||||
function () {
|
||||
"use strict";
|
||||
|
||||
// Utility function; load a JSON definition
|
||||
function loadJSON(file, callback) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", file);
|
||||
xhr.responseType = "json";
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4) { // DONE
|
||||
callback(xhr.response);
|
||||
}
|
||||
}
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
// Run Jasmine upon full declared suite.
|
||||
// Called after all tests loaded.
|
||||
function runJasmine() {
|
||||
var jasmineEnv = jasmine.getEnv(),
|
||||
htmlReporter,
|
||||
titleReporter;
|
||||
jasmineEnv.updateInterval = 250;
|
||||
|
||||
htmlReporter = new jasmine.HtmlReporter();
|
||||
//https://github.com/jcarver989/phantom-jasmine/issues/2
|
||||
window.console_reporter = new jasmine.ConsoleReporter();
|
||||
|
||||
titleReporter = new jasmine.Reporter();
|
||||
titleReporter.reportRunnerResults = function (runner) {
|
||||
document.title = runner.results().passed() ?
|
||||
"PASSING" : "FAILING";
|
||||
};
|
||||
|
||||
jasmineEnv.addReporter(htmlReporter);
|
||||
jasmineEnv.addReporter(new jasmine.BlanketReporter());
|
||||
jasmineEnv.addReporter(window.console_reporter);
|
||||
jasmineEnv.addReporter(titleReporter);
|
||||
jasmineEnv.specFilter = function (spec) {
|
||||
return htmlReporter.specFilter(spec);
|
||||
};
|
||||
jasmineEnv.currentRunner().execute();
|
||||
}
|
||||
|
||||
function lookupSource(component) {
|
||||
return component.src;
|
||||
}
|
||||
|
||||
function lookupSpec(component) {
|
||||
return component.spec;
|
||||
}
|
||||
|
||||
// Run a full list of specs.
|
||||
// Should be done after loading and path-correcting all specs
|
||||
function runSpecs(components) {
|
||||
blanket.options({'filter': components.map(lookupSource)});
|
||||
require(components.map(lookupSpec), runJasmine);
|
||||
}
|
||||
|
||||
// Run all test suites contained in all bundles
|
||||
function runSuites(bundles) {
|
||||
var components = [], count = 0;
|
||||
|
||||
function addSuite(bundle) {
|
||||
function fixPath(name) {
|
||||
return {
|
||||
spec: bundle + "/test/" + name + "Spec",
|
||||
src: bundle + "/src/" + name
|
||||
};
|
||||
}
|
||||
|
||||
function addSpecs(suiteSpecs) {
|
||||
components = components.concat(suiteSpecs.map(fixPath));
|
||||
count += 1;
|
||||
if (count === bundles.length) {
|
||||
runSpecs(components);
|
||||
}
|
||||
}
|
||||
|
||||
loadJSON(bundle + "/test/suite.json", addSpecs);
|
||||
}
|
||||
|
||||
bundles.forEach(addSuite);
|
||||
}
|
||||
|
||||
// Set the ball rolling; load and run all test suites
|
||||
loadJSON("bundles.json", runSuites);
|
||||
}
|
||||
);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
183
test.js
183
test.js
@ -1,183 +0,0 @@
|
||||
/*global require, window, document*/
|
||||
|
||||
require(
|
||||
{
|
||||
baseUrl: '../js',
|
||||
paths: {
|
||||
'jquery': 'lib/jquery',
|
||||
'dust': 'lib/dust',
|
||||
'uuid': 'lib/uuid',
|
||||
'moment': 'lib/moment.min',
|
||||
|
||||
'jasmine': '../test/js/lib/jasmine',
|
||||
'jasmine-html': '../test/js/lib/jasmine-html',
|
||||
'blanket-jasmine': '../test/js/lib/blanket_jasmine',
|
||||
'console-runner': '../test/js/lib/console-runner',
|
||||
|
||||
'spec': '../test/js/spec'
|
||||
},
|
||||
shim: {
|
||||
'dust': {
|
||||
'exports': 'dust'
|
||||
},
|
||||
'jasmine': {
|
||||
'exports': 'jasmine'
|
||||
},
|
||||
'jasmine-html': {
|
||||
'exports': 'jasmine',
|
||||
'deps': ['jasmine']
|
||||
},
|
||||
'console-runner': {
|
||||
'exports': 'jasmine',
|
||||
'deps': ['jasmine']
|
||||
},
|
||||
'blanket-jasmine': {
|
||||
'exports': 'blanket',
|
||||
'deps': ['jasmine']
|
||||
}
|
||||
}
|
||||
},
|
||||
[
|
||||
'blanket-jasmine',
|
||||
'jasmine-html',
|
||||
'console-runner'
|
||||
],
|
||||
function (
|
||||
blanket,
|
||||
jasmine
|
||||
) {
|
||||
"use strict";
|
||||
blanket.options({
|
||||
'filter': ['core/', 'common/', 'data/', 'editor/', 'layout/', 'lists/'],
|
||||
'antifilter': 'spec/'
|
||||
});
|
||||
require(
|
||||
[
|
||||
'spec/core/promises',
|
||||
'spec/core/action/aggregator',
|
||||
'spec/core/action/create-action-provider-spec',
|
||||
'spec/core/action/create-action-spec',
|
||||
'spec/core/action/view',
|
||||
'spec/core/aggregators/action-aggregator-spec',
|
||||
'spec/core/aggregators/capability-aggregator-spec',
|
||||
'spec/core/aggregators/model-aggregator-spec',
|
||||
'spec/core/api/domain-object-spec',
|
||||
'spec/core/file/ajax.adapter',
|
||||
'spec/core/model/merge-models-spec',
|
||||
'spec/core/object/aggregator',
|
||||
'spec/core/object/capabilities/action-capability-spec',
|
||||
'spec/core/object/capabilities/composition-capability-spec',
|
||||
'spec/core/object/capabilities/context-capability-spec',
|
||||
'spec/core/object/capabilities/contextual-domain-object-spec',
|
||||
'spec/core/object/capabilities/core-capability-provider-spec',
|
||||
'spec/core/object/capabilities/persistence-capability-spec',
|
||||
'spec/core/object/capabilities/refresh-capability-spec',
|
||||
'spec/core/object/model/static-model-provider-spec',
|
||||
'spec/core/object/object-provider-spec',
|
||||
'spec/core/object/persisted-model-provider-spec',
|
||||
'spec/core/persistence/caching-persistence-decorator-spec',
|
||||
'spec/core/persistence/spec-browser-persistence',
|
||||
'spec/core/type/type-capability-provider-spec',
|
||||
'spec/core/type/spec-type-impl',
|
||||
'spec/core/type/spec-type-provider',
|
||||
'spec/core/type/type-property-spec',
|
||||
'spec/core/type/type-property-conversion-spec',
|
||||
'spec/core/view/aggregator',
|
||||
'spec/core/view/css.loader',
|
||||
'spec/core/view/dust.adapter',
|
||||
'spec/core/view/prioritizer',
|
||||
'spec/core/view/template.views',
|
||||
'spec/core/view/view',
|
||||
'spec/core/view/presentation/require.adapter',
|
||||
'spec/core/windowing/windowing-provider-spec',
|
||||
'spec/common/actions/common-action-provider-spec',
|
||||
'spec/common/actions/navigate-action-spec',
|
||||
'spec/common/actions/properties-action-spec',
|
||||
'spec/common/actions/properties-dialog-spec',
|
||||
'spec/common/dialog/overlay-dialog-provider-spec',
|
||||
'spec/common/object/locator-object-wrapper-spec',
|
||||
'spec/common/view/composition-presenter-spec',
|
||||
'spec/common/view/type-presenter-spec',
|
||||
'spec/common/view/browse/presenter',
|
||||
'spec/common/view/browse/browse-object-presenter',
|
||||
'spec/common/view/control-sets/presenter-folder-switcher',
|
||||
'spec/common/view/control-sets/presenter-view-switcher',
|
||||
'spec/common/view/controls/checkboxes-presenter',
|
||||
'spec/common/view/controls/create-button-presenter-spec',
|
||||
'spec/common/view/controls/create-menu-presenter-spec',
|
||||
'spec/common/view/controls/datetime-presenter',
|
||||
'spec/common/view/controls/form-presenter',
|
||||
'spec/common/view/controls/locator-presenter-spec',
|
||||
'spec/common/view/controls/select-presenter',
|
||||
'spec/common/view/controls/selects-presenter',
|
||||
'spec/common/view/controls/textfield-presenter-spec',
|
||||
'spec/common/view/items/grid-item-presenter-spec',
|
||||
'spec/common/view/items/presenter',
|
||||
'spec/common/view/label/label-presenter-spec',
|
||||
'spec/common/view/model/model-presenter',
|
||||
'spec/common/view/tree/presenter',
|
||||
'spec/common/view/tree/presenter-tree-item',
|
||||
'spec/data/aggregators/data-aggregator-spec',
|
||||
'spec/data/aggregators/subscription-aggregator-spec',
|
||||
'spec/data/api/abstract-data-spec',
|
||||
'spec/data/capabilities/data-capability-impl-spec',
|
||||
'spec/data/capabilities/data-capability-provider-spec',
|
||||
'spec/data/capabilities/subscription-capability-impl-spec',
|
||||
'spec/data/decorators/throttling-data-decorator-spec',
|
||||
'spec/data/view/abstract-data-presenter-spec',
|
||||
'spec/editor/actions/cancel-action-spec',
|
||||
'spec/editor/actions/edit-action-provider-spec',
|
||||
'spec/editor/actions/edit-action-spec',
|
||||
'spec/editor/actions/remove-action-spec',
|
||||
'spec/editor/actions/save-action-spec',
|
||||
'spec/editor/capability/mutation-capability-spec',
|
||||
'spec/editor/capability/editable-action-capability-spec',
|
||||
'spec/editor/capability/editable-context-capability-spec',
|
||||
'spec/editor/capability/editable-persistence-capability-spec',
|
||||
'spec/editor/capability/editor-capability-spec',
|
||||
'spec/editor/object/editable-domain-object-cache-spec',
|
||||
'spec/editor/type/mutable-type-spec',
|
||||
'spec/editor/util/drag-util-spec',
|
||||
'spec/editor/util/drop-util-spec',
|
||||
'spec/editor/util/menu-util-spec',
|
||||
'spec/editor/view/feature-view-decorator-spec',
|
||||
'spec/editor/view/edit-mode-presenter-spec',
|
||||
'spec/editor/view/edit-topbar-presenter-spec',
|
||||
'spec/editor/view/elements-presenter-spec',
|
||||
'spec/layout/capability/delegation-capability-spec',
|
||||
'spec/layout/view/frame-dragger-spec',
|
||||
'spec/layout/view/frame-presenter-spec',
|
||||
'spec/layout/view/layout-presenter-spec',
|
||||
'spec/lists/view/scrolling-populator-spec',
|
||||
'spec/lists/view/scrolling-presenter-spec'
|
||||
|
||||
],
|
||||
function () {
|
||||
var jasmineEnv = jasmine.getEnv(),
|
||||
htmlReporter,
|
||||
titleReporter;
|
||||
jasmineEnv.updateInterval = 250;
|
||||
|
||||
htmlReporter = new jasmine.HtmlReporter();
|
||||
//https://github.com/jcarver989/phantom-jasmine/issues/2
|
||||
window.console_reporter = new jasmine.ConsoleReporter();
|
||||
|
||||
titleReporter = new jasmine.Reporter();
|
||||
titleReporter.reportRunnerResults = function (runner) {
|
||||
document.title = runner.results().passed() ?
|
||||
"PASSING" : "FAILING";
|
||||
};
|
||||
|
||||
jasmineEnv.addReporter(htmlReporter);
|
||||
jasmineEnv.addReporter(new jasmine.BlanketReporter());
|
||||
jasmineEnv.addReporter(window.console_reporter);
|
||||
jasmineEnv.addReporter(titleReporter);
|
||||
jasmineEnv.specFilter = function (spec) {
|
||||
return htmlReporter.specFilter(spec);
|
||||
};
|
||||
jasmineEnv.currentRunner().execute();
|
||||
}
|
||||
|
||||
);
|
||||
}
|
||||
);
|
Loading…
x
Reference in New Issue
Block a user