diff --git a/package.json b/package.json
index 77688163fcd..4b4397e9af5 100644
--- a/package.json
+++ b/package.json
@@ -71,7 +71,7 @@
"scripts": {
"start": "hadron-build develop",
"pretest": "mongodb-runner install && mongodb-runner start --port 27018",
- "test": "npm run test-main && npm run test-renderer && hadron-build test",
+ "test": "hadron-build test",
"posttest": "mongodb-runner stop --port 27018",
"check": "mongodb-js-precommit ./src/app/*.js ./src/app/**/**/*.js ./src/{app/**/*.js,main/**/*.js} ./test/*.js ./src/internal-packages/**/*.js ./src/internal-packages/**/**/*{.js,.jsx} ./src/internal-packages/**/**/**/*{.js,.jsx} ./src/internal-packages/**/**/**/**/*{.js,.jsx}",
"ci": "npm run check && npm run test",
@@ -79,11 +79,12 @@
"compile-ui": "hadron-build ui",
"fmt": "mongodb-js-fmt ./*.js src/{**/*.js,*.js} test/{**/*.js,*.js}",
"release": "hadron-build release",
- "test-functional": "npm test -- --functional",
- "test-main": "electron-mocha ./tests/main-process/*.test.js",
- "test-packages": "npm test -- --packages",
- "test-renderer": "electron-mocha --renderer ./tests/renderer-process/*.test.js",
"test-unit": "npm test -- --unit",
+ "test-enzyme": "npm test -- --enzyme",
+ "test-packages": "npm test -- --packages",
+ "test-main": "npm test -- --main",
+ "test-renderer": "npm test -- --renderer",
+ "test-functional": "npm test -- --functional",
"test-release": "npm test -- --release",
"upload": "hadron-build upload",
"evergreen-expansions": "hadron-build info --format=yaml --flatten > expansions.yml"
@@ -109,7 +110,7 @@
"ampersand-view": "^9.0.0",
"ampersand-view-switcher": "^2.0.0",
"app-migrations": "mongodb-js/app-migrations#v0.1.2",
- "async": "^1.5.0",
+ "async": "^1.5.2",
"babel-register": "^6.7.2",
"backoff": "^2.4.1",
"bootstrap": "https://github.com/twbs/bootstrap/archive/v3.3.5.tar.gz",
@@ -191,7 +192,7 @@
"electron-prebuilt": "1.2.8",
"enzyme": "^2.5.1",
"eslint-config-mongodb-js": "^2.2.0",
- "hadron-build": "^5.1.9",
+ "hadron-build": "^6.0.1",
"jsdom": "^9.8.3",
"mocha": "^3.1.2",
"mock-require": "^2.0.1",
diff --git a/test/helper.js b/test/enzyme/_setup.js
similarity index 100%
rename from test/helper.js
rename to test/enzyme/_setup.js
diff --git a/test/collection-component.test.js b/test/enzyme/collection-component.test.js
similarity index 93%
rename from test/collection-component.test.js
rename to test/enzyme/collection-component.test.js
index a4ce720c3d9..a3b4ad392a0 100644
--- a/test/collection-component.test.js
+++ b/test/enzyme/collection-component.test.js
@@ -7,8 +7,8 @@ const React = require('react');
const sinon = require('sinon');
const shallow = require('enzyme').shallow;
const AppRegistry = require('hadron-app-registry');
-const Collection = require('../src/internal-packages/collection/lib/components/index');
-const TabNavBar = require('../src/internal-packages/app/lib/components/tab-nav-bar');
+const Collection = require('../../src/internal-packages/collection/lib/components/index');
+const TabNavBar = require('../../src/internal-packages/app/lib/components/tab-nav-bar');
// const debug = require('debug')('compass:collection:test');
diff --git a/test/collections-table-component.test.js b/test/enzyme/collections-table-component.test.js
similarity index 90%
rename from test/collections-table-component.test.js
rename to test/enzyme/collections-table-component.test.js
index 4d114e195ad..fccd4b6f38d 100644
--- a/test/collections-table-component.test.js
+++ b/test/enzyme/collections-table-component.test.js
@@ -7,8 +7,8 @@ const React = require('react');
const sinon = require('sinon');
const {mount} = require('enzyme');
const AppRegistry = require('hadron-app-registry');
-const SortableTable = require('../src/internal-packages/app/lib/components/sortable-table');
-const TabNavBar = require('../src/internal-packages/app/lib/components/tab-nav-bar');
+const SortableTable = require('../../src/internal-packages/app/lib/components/sortable-table');
+const TabNavBar = require('../../src/internal-packages/app/lib/components/tab-nav-bar');
chai.use(chaiEnzyme());
@@ -35,7 +35,7 @@ describe('', () => {
// but got: undefined. Check the render method of `DatabasesTable`.
app.appRegistry.registerComponent('App.SortableTable', SortableTable);
- this.CollectionsTable = require('../src/internal-packages/database/lib/components/collections-table');
+ this.CollectionsTable = require('../../src/internal-packages/database/lib/components/collections-table');
});
afterEach(() => {
// Restore properties on the global app object,
diff --git a/test/crud.test.js b/test/enzyme/crud.test.js
similarity index 89%
rename from test/crud.test.js
rename to test/enzyme/crud.test.js
index 2e55b5c9257..83d09bf57b0 100644
--- a/test/crud.test.js
+++ b/test/enzyme/crud.test.js
@@ -22,11 +22,11 @@ const crudActions = {
closeAllMenus: closeAllMenusSpy
};
-mock('../src/internal-packages/crud/lib/actions', crudActions);
+mock('../../src/internal-packages/crud/lib/actions', crudActions);
const React = require('react');
const Element = require('hadron-document').Element;
-const LineNumber = require('../src/internal-packages/crud/lib/component/line-number');
+const LineNumber = require('../../src/internal-packages/crud/lib/component/line-number');
// use chai-enzyme assertions, see https://github.com/producthunt/chai-enzyme
chai.use(chaiEnzyme());
diff --git a/test/databases-table-component.test.js b/test/enzyme/databases-table-component.test.js
similarity index 90%
rename from test/databases-table-component.test.js
rename to test/enzyme/databases-table-component.test.js
index 3c192eb58e3..d8e91f0454f 100644
--- a/test/databases-table-component.test.js
+++ b/test/enzyme/databases-table-component.test.js
@@ -7,11 +7,11 @@ const React = require('react');
const sinon = require('sinon');
const {mount, shallow} = require('enzyme');
const AppRegistry = require('hadron-app-registry');
-const CreateCollectionCheckbox = require('../src/internal-packages/database/lib/components/create-collection-checkbox');
-const CreateCollectionInput = require('../src/internal-packages/database/lib/components/create-collection-input');
-const CreateCollectionSizeInput = require('../src/internal-packages/database/lib/components/create-collection-size-input');
-const SortableTable = require('../src/internal-packages/app/lib/components/sortable-table');
-const TabNavBar = require('../src/internal-packages/app/lib/components/tab-nav-bar');
+const CreateCollectionCheckbox = require('../../src/internal-packages/database/lib/components/create-collection-checkbox');
+const CreateCollectionInput = require('../../src/internal-packages/database/lib/components/create-collection-input');
+const CreateCollectionSizeInput = require('../../src/internal-packages/database/lib/components/create-collection-size-input');
+const SortableTable = require('../../src/internal-packages/app/lib/components/sortable-table');
+const TabNavBar = require('../../src/internal-packages/app/lib/components/tab-nav-bar');
// use chai-enzyme assertions, see https://github.com/producthunt/chai-enzyme
chai.use(chaiEnzyme());
@@ -57,7 +57,7 @@ describe('', () => {
app.appRegistry.registerComponent('Database.CreateCollectionInput', CreateCollectionInput);
app.appRegistry.registerComponent('Database.CreateCollectionSizeInput', CreateCollectionSizeInput);
- this.DatabasesTable = require('../src/internal-packages/server-stats/lib/component/databases-table');
+ this.DatabasesTable = require('../../src/internal-packages/server-stats/lib/component/databases-table');
});
afterEach(() => {
// Restore properties on the global app object,
diff --git a/test/indexes.column.test.js b/test/enzyme/indexes.column.test.js
similarity index 89%
rename from test/indexes.column.test.js
rename to test/enzyme/indexes.column.test.js
index fd819885ff5..76184781345 100644
--- a/test/indexes.column.test.js
+++ b/test/enzyme/indexes.column.test.js
@@ -8,12 +8,12 @@ const expect = chai.expect;
const React = require('react');
const {mount, shallow} = require('enzyme');
-const SizeColumn = require('../src/internal-packages/indexes/lib/component/size-column');
-const UsageColumn = require('../src/internal-packages/indexes/lib/component/usage-column');
+const SizeColumn = require('../../src/internal-packages/indexes/lib/component/size-column');
+const UsageColumn = require('../../src/internal-packages/indexes/lib/component/usage-column');
chai.use(chaiEnzyme());
-require('../src/app/reflux-listen-to-external-store.js');
+require('../../src/app/reflux-listen-to-external-store.js');
describe('', () => {
let component;
@@ -36,7 +36,7 @@ describe('', () => {
app.appRegistry = new AppRegistry();
app.instance = {build: {version: '3.2.0'}};
- this.CreateIndexButton = require('../src/internal-packages/indexes/lib/component/create-index-button');
+ this.CreateIndexButton = require('../../src/internal-packages/indexes/lib/component/create-index-button');
});
afterEach(function() {
// Restore properties on the global app object,
diff --git a/test/rtss.test.js b/test/enzyme/rtss.test.js
similarity index 88%
rename from test/rtss.test.js
rename to test/enzyme/rtss.test.js
index ea8819deef1..4411c8ceff5 100644
--- a/test/rtss.test.js
+++ b/test/enzyme/rtss.test.js
@@ -6,7 +6,7 @@ const expect = chai.expect;
const React = require('react');
const {shallow} = require('enzyme');
const AppRegistry = require('hadron-app-registry');
-const StatusRow = require('../src/internal-packages/app/lib/components/status-row');
+const StatusRow = require('../../src/internal-packages/app/lib/components/status-row');
chai.use(chaiEnzyme());
@@ -20,7 +20,7 @@ describe('rtss', () => {
// appRegistry.getComponent (i.e. appRegistry being undefined)
app.appRegistry = new AppRegistry();
app.appRegistry.registerComponent('App.StatusRow', StatusRow);
- this.performance = require('../src/internal-packages/server-stats/lib/component/performance-component');
+ this.performance = require('../../src/internal-packages/server-stats/lib/component/performance-component');
});
afterEach(() => {
// Restore properties on the global app object,
diff --git a/test/sampling-message-component.test.js b/test/enzyme/sampling-message-component.test.js
similarity index 94%
rename from test/sampling-message-component.test.js
rename to test/enzyme/sampling-message-component.test.js
index cefb962db6d..68c4b0678cc 100644
--- a/test/sampling-message-component.test.js
+++ b/test/enzyme/sampling-message-component.test.js
@@ -21,7 +21,7 @@ describe('', () => {
app.appRegistry.registerAction('CRUD.Actions', sinon.spy());
app.appRegistry.registerStore('CRUD.ResetDocumentListStore', sinon.spy());
- this.SamplingMessage = require('../src/internal-packages/query/lib/component/sampling-message');
+ this.SamplingMessage = require('../../src/internal-packages/query/lib/component/sampling-message');
});
afterEach(() => {
// Restore properties on the global app object,
diff --git a/test/schema.field.test.js b/test/enzyme/schema.field.test.js
similarity index 81%
rename from test/schema.field.test.js
rename to test/enzyme/schema.field.test.js
index 9eb1afe4f2b..24f8c56bff5 100644
--- a/test/schema.field.test.js
+++ b/test/enzyme/schema.field.test.js
@@ -82,11 +82,11 @@ describe('', () => {
// appRegistry.getComponent (i.e. appRegistry being undefined)
app.appRegistry = new AppRegistry();
// register QueryStore
- require('../src/internal-packages/query').activate();
+ require('../../src/internal-packages/query').activate();
});
after(function() {
// unregister QueryStore
- require('../src/internal-packages/query').deactivate();
+ require('../../src/internal-packages/query').deactivate();
// Restore properties on the global app object,
// so they don't affect other tests
app.appRegistry = appRegistry;
@@ -94,8 +94,8 @@ describe('', () => {
context('when adding fields to the schema view', () => {
it('renders field types', () => {
- const Field = require('../src/internal-packages/schema/lib/component/field');
- const Type = require('../src/internal-packages/schema/lib/component/type');
+ const Field = require('../../src/internal-packages/schema/lib/component/field');
+ const Type = require('../../src/internal-packages/schema/lib/component/type');
fieldProp.types = typesWithUndefined;
component = mount();
@@ -103,8 +103,8 @@ describe('', () => {
});
it('renders the first type as string', () => {
- const Field = require('../src/internal-packages/schema/lib/component/field');
- const Type = require('../src/internal-packages/schema/lib/component/type');
+ const Field = require('../../src/internal-packages/schema/lib/component/field');
+ const Type = require('../../src/internal-packages/schema/lib/component/type');
fieldProp.types = typesWithUndefined;
component = mount();
@@ -113,8 +113,8 @@ describe('', () => {
});
it('renders the second type as undefined', () => {
- const Field = require('../src/internal-packages/schema/lib/component/field');
- const Type = require('../src/internal-packages/schema/lib/component/type');
+ const Field = require('../../src/internal-packages/schema/lib/component/field');
+ const Type = require('../../src/internal-packages/schema/lib/component/type');
fieldProp.types = typesWithUndefined;
component = mount();
@@ -124,8 +124,8 @@ describe('', () => {
context('when rendering multiple fields', () => {
it('renders type with highest probability first', () => {
- const Field = require('../src/internal-packages/schema/lib/component/field');
- const Type = require('../src/internal-packages/schema/lib/component/type');
+ const Field = require('../../src/internal-packages/schema/lib/component/field');
+ const Type = require('../../src/internal-packages/schema/lib/component/type');
fieldProp.types = typesWithMultiple;
component = mount();
diff --git a/test/schema.minicharts.test.js b/test/enzyme/schema.minicharts.test.js
similarity index 81%
rename from test/schema.minicharts.test.js
rename to test/enzyme/schema.minicharts.test.js
index 73e1bb94ba8..2dc60ea1d95 100644
--- a/test/schema.minicharts.test.js
+++ b/test/enzyme/schema.minicharts.test.js
@@ -21,11 +21,11 @@ describe('', () => {
// appRegistry.getComponent (i.e. appRegistry being undefined)
app.appRegistry = new AppRegistry();
// register QueryStore
- require('../src/internal-packages/query').activate();
+ require('../../src/internal-packages/query').activate();
});
after(function() {
// unregister QueryStore
- require('../src/internal-packages/query').deactivate();
+ require('../../src/internal-packages/query').deactivate();
// Restore properties on the global app object,
// so they don't affect other tests
app.appRegistry = appRegistry;
@@ -46,8 +46,8 @@ describe('', () => {
};
it('renders a D3Component minichart', () => {
- const Minichart = require('../src/internal-packages/schema/lib/component/minichart');
- const D3Component = require('../src/internal-packages/schema/lib/component/d3component');
+ const Minichart = require('../../src/internal-packages/schema/lib/component/minichart');
+ const D3Component = require('../../src/internal-packages/schema/lib/component/d3component');
const wrapper = shallow(
', () => {
};
it('renders a unique minichart', () => {
- const Minichart = require('../src/internal-packages/schema/lib/component/minichart');
- const UniqueMinichart = require('../src/internal-packages/schema/lib/component/unique');
+ const Minichart = require('../../src/internal-packages/schema/lib/component/minichart');
+ const UniqueMinichart = require('../../src/internal-packages/schema/lib/component/unique');
const wrapper = shallow(
', () => {
});
it('has a unique bubble for each datum', () => {
- const Minichart = require('../src/internal-packages/schema/lib/component/minichart');
+ const Minichart = require('../../src/internal-packages/schema/lib/component/minichart');
const wrapper = mount(
', () => {
// appRegistry.getComponent (i.e. appRegistry being undefined)
app.appRegistry = new AppRegistry();
- this.RuleBuilder = require('../src/internal-packages/validation/lib/components/rule-builder');
+ this.RuleBuilder = require('../../src/internal-packages/validation/lib/components/rule-builder');
});
afterEach(() => {
// Restore properties on the global app object,
diff --git a/test/validation.rule.test.js b/test/enzyme/validation.rule.test.js
similarity index 93%
rename from test/validation.rule.test.js
rename to test/enzyme/validation.rule.test.js
index c78692d01f6..d47c727a5d2 100644
--- a/test/validation.rule.test.js
+++ b/test/enzyme/validation.rule.test.js
@@ -6,9 +6,9 @@ const React = require('react');
const mount = require('enzyme').mount;
const shallow = require('enzyme').shallow;
-const Rule = require('../src/internal-packages/validation/lib/components/rule');
-const RuleCategoryRange = require('../src/internal-packages/validation/lib/components/rule-categories/range');
-const RuleCategorySelector = require('../src/internal-packages/validation/lib/components/rule-category-selector');
+const Rule = require('../../src/internal-packages/validation/lib/components/rule');
+const RuleCategoryRange = require('../../src/internal-packages/validation/lib/components/rule-categories/range');
+const RuleCategorySelector = require('../../src/internal-packages/validation/lib/components/rule-category-selector');
const _ = require('lodash');
// const debug = require('debug')('compass:validation:test');
diff --git a/test/compass-functional.test.js b/test/functional/compass-functional.test.js
similarity index 100%
rename from test/compass-functional.test.js
rename to test/functional/compass-functional.test.js
diff --git a/test/support/spectron-support.js b/test/functional/support/spectron-support.js
similarity index 99%
rename from test/support/spectron-support.js
rename to test/functional/support/spectron-support.js
index c84d2740fa1..fef4a3f48a8 100644
--- a/test/support/spectron-support.js
+++ b/test/functional/support/spectron-support.js
@@ -1344,7 +1344,7 @@ function addInputCommands(client) {
* @returns {Application} The spectron application.
*/
function createApplication() {
- const dir = path.join(__dirname, '..', '..');
+ const dir = path.join(__dirname, '..', '..', '..');
/* Force the node env to testing */
process.env.NODE_ENV = 'testing';
return new Application({
diff --git a/tests/main-process/menu.zoom.test.js b/test/main/menu.zoom.test.js
similarity index 100%
rename from tests/main-process/menu.zoom.test.js
rename to test/main/menu.zoom.test.js
diff --git a/tests/renderer-process/zoom.test.js b/test/renderer/zoom.test.js
similarity index 100%
rename from tests/renderer-process/zoom.test.js
rename to test/renderer/zoom.test.js
diff --git a/test/a-babel-global-test-setup.js b/test/unit/_setup.js
similarity index 100%
rename from test/a-babel-global-test-setup.js
rename to test/unit/_setup.js
diff --git a/test/collections.store.test.js b/test/unit/collections.store.test.js
similarity index 82%
rename from test/collections.store.test.js
rename to test/unit/collections.store.test.js
index e89ac4a9c3a..c262a9519fe 100644
--- a/test/collections.store.test.js
+++ b/test/unit/collections.store.test.js
@@ -2,10 +2,10 @@
const { expect } = require('chai');
const app = require('ampersand-app');
-require('../src/app/reflux-listen-to-external-store.js');
+require('../../src/app/reflux-listen-to-external-store.js');
-const CollectionsStore = require('../src/internal-packages/database/lib/stores/collections-store');
-const InstanceStore = require('../src/internal-packages/app/lib/stores/instance-store');
+const CollectionsStore = require('../../src/internal-packages/database/lib/stores/collections-store');
+const InstanceStore = require('../../src/internal-packages/app/lib/stores/instance-store');
const { NamespaceStore } = require('hadron-reflux-store');
describe('CollectionsStore', () => {
diff --git a/test/indexes.store.test.js b/test/unit/indexes.store.test.js
similarity index 95%
rename from test/indexes.store.test.js
rename to test/unit/indexes.store.test.js
index 34bd6669dce..eb0d4311521 100644
--- a/test/indexes.store.test.js
+++ b/test/unit/indexes.store.test.js
@@ -6,17 +6,17 @@ const AppRegistry = require('hadron-app-registry');
const { NamespaceStore } = require('hadron-reflux-store');
const sinon = require('sinon');
-const root = '../src/internal-packages/';
+const root = '../../src/internal-packages/';
const storeKeyMap = {
'CollectionStore': root + 'app/lib/stores/collection-store',
'LoadIndexesStore': root + 'indexes/lib/store/load-indexes-store',
'Schema.Store': root + 'schema/lib/store',
'Query.ChangedStore': root + 'query/lib/store/query-changed-store'
};
-require('../src/app/reflux-listen-to-external-store.js');
+require('../../src/app/reflux-listen-to-external-store.js');
-const CreateIndexStore = require('../src/internal-packages/indexes/lib/store/create-index-store');
-const Collection = require('../src/internal-packages/collection/lib/components/index');
+const CreateIndexStore = require('../../src/internal-packages/indexes/lib/store/create-index-store');
+const Collection = require('../../src/internal-packages/collection/lib/components/index');
describe('CreateIndexesStore', function() {
let unsubscribe;
diff --git a/test/kerberos.test.js b/test/unit/kerberos.test.js
similarity index 100%
rename from test/kerberos.test.js
rename to test/unit/kerberos.test.js
diff --git a/test/keytar.test.js b/test/unit/keytar.test.js
similarity index 100%
rename from test/keytar.test.js
rename to test/unit/keytar.test.js
diff --git a/test/query.ranges.test.js b/test/unit/query.ranges.test.js
similarity index 99%
rename from test/query.ranges.test.js
rename to test/unit/query.ranges.test.js
index bb4003261b6..c174a282c25 100644
--- a/test/query.ranges.test.js
+++ b/test/unit/query.ranges.test.js
@@ -1,5 +1,5 @@
/* eslint no-var: 0 */
-var inValueRange = require('../src/internal-packages/query/lib/util').inValueRange;
+var inValueRange = require('../../src/internal-packages/query/lib/util').inValueRange;
var assert = require('assert');
var bson = require('bson');
diff --git a/test/query.store.test.js b/test/unit/query.store.test.js
similarity index 86%
rename from test/query.store.test.js
rename to test/unit/query.store.test.js
index 6d192d71154..c3fce5ed33c 100644
--- a/test/query.store.test.js
+++ b/test/unit/query.store.test.js
@@ -1,9 +1,9 @@
/* eslint no-unused-expressions: 0 */
const expect = require('chai').expect;
-const IndexesActions = require('../src/internal-packages/indexes/lib/action/index-actions');
-const QueryStore = require('../src/internal-packages/query/lib/store/query-store');
-const QueryChangedStore = require('../src/internal-packages/query/lib/store/query-changed-store');
+const IndexesActions = require('../../src/internal-packages/indexes/lib/action/index-actions');
+const QueryStore = require('../../src/internal-packages/query/lib/store/query-store');
+const QueryChangedStore = require('../../src/internal-packages/query/lib/store/query-changed-store');
const sinon = require('sinon');
describe('QueryChangedStore', () => {
diff --git a/test/validation.store.test.js b/test/unit/validation.store.test.js
similarity index 99%
rename from test/validation.store.test.js
rename to test/unit/validation.store.test.js
index b5dd1cd4178..7019151a3c3 100644
--- a/test/validation.store.test.js
+++ b/test/unit/validation.store.test.js
@@ -1,7 +1,7 @@
/* eslint no-unused-expressions: 0 */
const expect = require('chai').expect;
-const ValidationStore = require('../src/internal-packages/validation/lib/stores');
+const ValidationStore = require('../../src/internal-packages/validation/lib/stores');
const sinon = require('sinon');
const _ = require('lodash');