Merge pull request #962 from theseyi/enable-acceptance

acceptance tests for tabbed routes
This commit is contained in:
Seyi Adebajo 2018-02-09 13:04:11 -08:00 committed by GitHub
commit 15ff520de6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 538 additions and 9 deletions

View File

@ -96,6 +96,7 @@ export default Route.extend({
// Don't set default zero Ids on controller
if (id) {
id = +id;
controller.set('datasetId', id);
/**

View File

@ -1,4 +1,22 @@
import { faker } from 'ember-cli-mirage';
import { getDatasetColumns } from 'wherehows-web/mirage/helpers/columns';
import { getDatasetCompliance } from 'wherehows-web/mirage/helpers/compliance';
import { getComplianceDataTypes } from 'wherehows-web/mirage/helpers/compliance-data-types';
import { getDatasetComplianceSuggestion } from 'wherehows-web/mirage/helpers/compliance-suggestions';
import { getDataset } from 'wherehows-web/mirage/helpers/dataset';
import { getDatasetAccess } from 'wherehows-web/mirage/helpers/dataset-access';
import { getDatasetComments } from 'wherehows-web/mirage/helpers/dataset-comments';
import { getDatasetDbVersions } from 'wherehows-web/mirage/helpers/dataset-db-versions';
import { getDatasetDepends } from 'wherehows-web/mirage/helpers/dataset-depends';
import { getDatasetImpact } from 'wherehows-web/mirage/helpers/dataset-impact';
import { getDatasetInstances } from 'wherehows-web/mirage/helpers/dataset-instances';
import { getDatasetOwners } from 'wherehows-web/mirage/helpers/dataset-owners';
import { getDatasetPlatforms } from 'wherehows-web/mirage/helpers/dataset-platforms';
import { getDatasetProperties } from 'wherehows-web/mirage/helpers/dataset-properties';
import { getDatasetReferences } from 'wherehows-web/mirage/helpers/dataset-references';
import { getDatasetSample } from 'wherehows-web/mirage/helpers/dataset-sample';
import { getDatasetView } from 'wherehows-web/mirage/helpers/dataset-view';
import { getOwnerTypes } from 'wherehows-web/mirage/helpers/owner-types';
import { IFunctionRouteHandler, IMirageServer } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
import { getConfig } from 'wherehows-web/mirage/helpers/config';
@ -12,17 +30,45 @@ export default function(this: IMirageServer) {
this.passthrough('/write-coverage');
this.namespace = '/api/v2';
this.get('/list/complianceDataTypes', getComplianceDataTypes);
this.get('/list/platforms', getDatasetPlatforms);
this.namespace = '/api/v1';
this.get('/list/complianceDataTypes', function(
this: IFunctionRouteHandler,
{ complianceDataTypes }: { complianceDataTypes: any }
) {
return {
complianceDataTypes: this.serialize(complianceDataTypes.all()),
status: ApiStatus.OK
};
});
this.get('/datasets/:dataset_id', getDataset);
this.get('/datasets/:dataset_id/view', getDatasetView);
this.get('/datasets/:dataset_id/columns', getDatasetColumns);
this.get('/datasets/:dataset_id/compliance', getDatasetCompliance);
this.get('/datasets/:dataset_id/compliance/suggestions', getDatasetComplianceSuggestion);
this.get('/datasets/:dataset_id/comments', getDatasetComments);
this.get('/datasets/:dataset_id/owners', getDatasetOwners);
this.get('/datasets/:dataset_id/instances', getDatasetInstances);
this.get('/owner/types', getOwnerTypes);
this.get('/datasets/:dataset_id/sample', getDatasetSample);
this.get('/datasets/:dataset_id/impacts', getDatasetImpact);
this.get('/datasets/:dataset_id/depends', getDatasetDepends);
this.get('/datasets/:dataset_id/access', getDatasetAccess);
this.get('/datasets/:dataset_id/references', getDatasetReferences);
this.get('/datasets/:dataset_id/properties', getDatasetProperties);
this.get('/datasets/:dataset_id/versions/db/:db_id', getDatasetDbVersions);
interface IFlowsObject {
flows: any;

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,17 @@
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
createdTime: faker.date.past(2),
deprecated: true,
deprecationNote: faker.lorem.words(5),
description: faker.lorem.words(7),
fabric: null,
modifiedTime: faker.date.recent(),
nativeName: 'abook.default-public-container',
nativeType: null,
platform: 'ambry',
properties: '{}',
removed: faker.random.boolean(),
tags: null,
uri: 'ambry:///abook.default-public-container'
});

View File

@ -1,6 +1,7 @@
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
id: faker.random.number({ min: 10000, max: 20000 }),
created: null,
formatedModified: '2017-09-04 10:34:44.0',
hasSchemaHistory: false,

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,3 @@
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({});

View File

@ -0,0 +1,12 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetColumns = function(this: IFunctionRouteHandler, { columns }: { columns: any }) {
return {
columns: this.serialize(columns.all()),
schemaless: false,
status: ApiStatus.OK
};
};
export { getDatasetColumns };

View File

@ -0,0 +1,14 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getComplianceDataTypes = function(
this: IFunctionRouteHandler,
{ complianceDataTypes }: { complianceDataTypes: any }
) {
return {
complianceDataTypes: this.serialize(complianceDataTypes.all()),
status: ApiStatus.OK
};
};
export { getComplianceDataTypes };

View File

@ -0,0 +1,14 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetComplianceSuggestion = function(
this: IFunctionRouteHandler,
{ complianceSuggestions }: { complianceSuggestions: any }
) {
return {
complianceSuggestion: this.serialize(complianceSuggestions.first()),
status: ApiStatus.OK
};
};
export { getDatasetComplianceSuggestion };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetCompliance = function(this: IFunctionRouteHandler, { compliances }: { compliances: any }) {
return {
complianceInfo: this.serialize(compliances.first()),
status: ApiStatus.OK
};
};
export { getDatasetCompliance };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetAccess = function(this: IFunctionRouteHandler, { accesses }: { accesses: any }) {
return {
access: this.serialize(accesses.first()),
status: ApiStatus.OK
};
};
export { getDatasetAccess };

View File

@ -0,0 +1,17 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetComments = function(this: IFunctionRouteHandler, { comments }: { comments: any }) {
return {
data: {
comments: this.serialize(comments.all()),
count: 2,
itemsPerPage: 10,
page: 1,
totalPages: 1
},
status: ApiStatus.OK
};
};
export { getDatasetComments };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetDbVersions = function(this: IFunctionRouteHandler, { versions }: { versions: any }) {
return {
versions: this.serialize(versions.all()),
status: ApiStatus.OK
};
};
export { getDatasetDbVersions };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetDepends = function(this: IFunctionRouteHandler, { depends }: { depends: any }) {
return {
depends: this.serialize(depends.all()),
status: ApiStatus.OK
};
};
export { getDatasetDepends };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetImpact = function(this: IFunctionRouteHandler, { impacts }: { impacts: any }) {
return {
impact: this.serialize(impacts.first()),
status: ApiStatus.OK
};
};
export { getDatasetImpact };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetInstances = function(this: IFunctionRouteHandler, { instances }: { instances: any }) {
return {
instances: this.serialize(instances.all()),
status: ApiStatus.OK
};
};
export { getDatasetInstances };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetOwners = function(this: IFunctionRouteHandler, { owners }: { owners: any }) {
return {
owners: this.serialize(owners.all()),
status: ApiStatus.OK
};
};
export { getDatasetOwners };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetPlatforms = function(this: IFunctionRouteHandler) {
return {
platforms: [],
status: ApiStatus.OK
};
};
export { getDatasetPlatforms };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetProperties = function(this: IFunctionRouteHandler) {
return {
properties: {},
status: ApiStatus.OK
};
};
export { getDatasetProperties };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetReferences = function(this: IFunctionRouteHandler, { references }: { references: any }) {
return {
references: this.serialize(references.all()),
status: ApiStatus.OK
};
};
export { getDatasetReferences };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetSample = function(this: IFunctionRouteHandler, { samples }: { samples: any }) {
return {
sample: this.serialize(samples.first()),
status: ApiStatus.OK
};
};
export { getDatasetSample };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDatasetView = function(this: IFunctionRouteHandler, { datasetViews }: { datasetViews: any }) {
return {
dataset: this.serialize(datasetViews.first()),
status: ApiStatus.OK
};
};
export { getDatasetView };

View File

@ -0,0 +1,11 @@
import { IFunctionRouteHandler } from 'wherehows-web/typings/ember-cli-mirage';
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getDataset = function(this: IFunctionRouteHandler, { datasets }: { datasets: any }) {
return {
dataset: this.serialize(datasets.first()),
status: ApiStatus.OK
};
};
export { getDataset };

View File

@ -0,0 +1,10 @@
import { ApiStatus } from 'wherehows-web/utils/api/shared';
const getOwnerTypes = function() {
return {
ownerTypes: ['DataOwner', 'Producer', 'Delegate', 'Stakeholder', 'Consumer'],
status: ApiStatus.OK
};
};
export { getOwnerTypes };

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -0,0 +1,3 @@
import { Model } from 'ember-cli-mirage';
export default Model.extend({});

View File

@ -12,5 +12,18 @@ export default function(server) {
server.create('config');
server.createList('owner', 6);
server.createList('dataset', 10);
server.createList('datasetView', 2);
server.createList('flow', 10);
server.createList('column', 2);
server.createList('comment', 2);
server.createList('compliance', 2);
server.createList('depend', 2);
server.createList('impact', 2);
server.createList('instance', 2);
server.createList('ownerType', 2);
server.createList('reference', 2);
server.createList('sample', 2);
server.createList('suggestion', 2);
server.createList('platform', 2);
server.createList('version', 2);
}

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/comments', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/comments', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/comments';
await visit(url);
assert.equal(currentURL(), url, 'comments route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Comments', 'comments tab is selected');
});

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/ownership', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/ownership', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/ownership';
await visit(url);
assert.equal(currentURL(), url, 'ownership route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Ownership', 'ownership tab is selected');
});

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/properties', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/properties', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/properties';
await visit(url);
assert.equal(currentURL(), url, 'properties route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Properties', 'properties tab is selected');
});

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/relations', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/relations', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/relations';
await visit(url);
assert.equal(currentURL(), url, 'relations route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Relations', 'relations tab is selected');
});

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/sample', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/sample', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/sample';
await visit(url);
assert.equal(currentURL(), url, 'sample route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Sample Data', 'sample tab is selected');
});

View File

@ -0,0 +1,23 @@
import { test } from 'qunit';
import moduleForAcceptance from 'wherehows-web/tests/helpers/module-for-acceptance';
import { visit, find, currentURL, waitUntil } from 'ember-native-dom-helpers';
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
moduleForAcceptance('Acceptance | datasets/dataset/schema', {
async beforeEach() {
appLogin();
}
});
test('visiting /datasets/dataset/schema', async function(assert) {
assert.expect(2);
defaultScenario(server);
const url = '/datasets/12345/schema';
await visit(url);
assert.equal(currentURL(), url, 'schema route is visitable');
await waitUntil(() => find('.ivy-tabs-tab'));
assert.equal(find('.ivy-tabs-tab.active').textContent.trim(), 'Schema', 'schema tab is selected');
});

View File

@ -0,0 +1,16 @@
import { visit, click, fillIn } from 'ember-native-dom-helpers';
import { authenticationUrl, testUser, testPassword } from 'wherehows-web/tests/helpers/login/constants';
import {
loginUserInput,
loginPasswordInput,
loginSubmitButton
} from 'wherehows-web/tests/helpers/login/page-element-constants';
const appLogin = async () => {
await visit(authenticationUrl);
await fillIn(loginUserInput, testUser);
await fillIn(loginPasswordInput, testPassword);
await click(loginSubmitButton);
};
export default appLogin;