mirror of
https://github.com/datahub-project/datahub.git
synced 2025-10-14 02:16:13 +00:00
90 lines
4.4 KiB
TypeScript
90 lines
4.4 KiB
TypeScript
import { module, test } from 'qunit';
|
|
import { visit, currentURL, findAll, click, waitFor } from '@ember/test-helpers';
|
|
import { setupApplicationTest } from 'ember-qunit';
|
|
import appLogin from 'wherehows-web/tests/helpers/login/test-login';
|
|
import defaultScenario from 'wherehows-web/mirage/scenarios/default';
|
|
import { IMirageTestContext } from '@datahub/utils/types/vendor/ember-cli-mirage-deprecated';
|
|
import { getTextNoSpacesFromElements } from '@datahub/utils/test-helpers/dom-helpers';
|
|
|
|
module('Acceptance | breadcrumbs-smoke-test', function(hooks) {
|
|
setupApplicationTest(hooks);
|
|
|
|
test('Breadcrumbs Smoke Test', async function(this: IMirageTestContext, assert) {
|
|
const categoryLinkClass = '.browse-category__link';
|
|
const breadCrumbClass = '.nacho-breadcrumbs';
|
|
const breadCrumbsClass = `${breadCrumbClass}__crumb`;
|
|
defaultScenario(this.server);
|
|
await appLogin();
|
|
await visit('/');
|
|
await visit('/browse/datasets?path=hdfs');
|
|
await waitFor(categoryLinkClass);
|
|
let categoryLinks = findAll(categoryLinkClass);
|
|
let breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(currentURL(), '/browse/datasets?path=hdfs');
|
|
assert.equal(categoryLinks.length, 1, 'There is 1 folder in root hdfs');
|
|
assert.equal(getTextNoSpacesFromElements(categoryLinks), 'some', 'Text match');
|
|
assert.equal(breadcrumbs.length, 2, 'There are 2 links in breadcrumb');
|
|
assert.equal(getTextNoSpacesFromElements(breadcrumbs), 'Datasetshdfs', 'Text match');
|
|
|
|
// path /some
|
|
await click(`${categoryLinkClass}:first-child`);
|
|
await waitFor(categoryLinkClass);
|
|
categoryLinks = findAll(categoryLinkClass);
|
|
breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(currentURL(), '/browse/datasets?path=hdfs%2Fsome');
|
|
assert.equal(categoryLinks.length, 1, 'There is 1 folder in path');
|
|
assert.equal(getTextNoSpacesFromElements(categoryLinks), 'path', 'Text match');
|
|
assert.equal(breadcrumbs.length, 3, 'There are 3 links in breadcrumb');
|
|
assert.equal(getTextNoSpacesFromElements(breadcrumbs), 'Datasetshdfssome', 'Text match');
|
|
|
|
// path /some/path
|
|
await click(`${categoryLinkClass}:first-child`);
|
|
await waitFor(categoryLinkClass);
|
|
categoryLinks = findAll(categoryLinkClass);
|
|
breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(currentURL(), '/browse/datasets?path=hdfs%2Fsome%2Fpath');
|
|
assert.equal(categoryLinks.length, 1, 'There is 1 folder in path');
|
|
assert.equal(getTextNoSpacesFromElements(categoryLinks), 'with', 'Text match');
|
|
assert.equal(breadcrumbs.length, 4, 'There are 4 links in breadcrumb');
|
|
assert.equal(getTextNoSpacesFromElements(breadcrumbs), 'Datasetshdfssomepath', 'Text match');
|
|
|
|
// path /some/path/with
|
|
await click(`${categoryLinkClass}:first-child`);
|
|
await waitFor(categoryLinkClass, { count: 2 });
|
|
categoryLinks = findAll(categoryLinkClass);
|
|
breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(currentURL(), '/browse/datasets?path=hdfs%2Fsome%2Fpath%2Fwith');
|
|
assert.equal(categoryLinks.length, 2, 'There are 2 folder in path');
|
|
assert.equal(getTextNoSpacesFromElements(categoryLinks), 'directoriesotherdir', 'Text match');
|
|
assert.equal(breadcrumbs.length, 5, 'There are 5 links in breadcrumb');
|
|
assert.equal(getTextNoSpacesFromElements(breadcrumbs), 'Datasetshdfssomepathwith', 'Text match');
|
|
|
|
// path /some/path/with/directories
|
|
await click(`${categoryLinkClass}:first-child`);
|
|
await waitFor(categoryLinkClass, { count: 2 });
|
|
categoryLinks = findAll(categoryLinkClass);
|
|
breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(currentURL(), '/browse/datasets?path=hdfs%2Fsome%2Fpath%2Fwith%2Fdirectories');
|
|
assert.equal(categoryLinks.length, 2, 'There is only 2 datasets in path');
|
|
assert.equal(getTextNoSpacesFromElements(categoryLinks), 'adataset1adataset2', 'Text match');
|
|
assert.equal(breadcrumbs.length, 6, 'There are 6 links in breadcrumb');
|
|
assert.equal(getTextNoSpacesFromElements(breadcrumbs), 'Datasetshdfssomepathwithdirectories', 'Text match');
|
|
|
|
// path adataset1
|
|
await click(`${categoryLinkClass}:first-child`);
|
|
breadcrumbs = findAll(breadCrumbsClass);
|
|
|
|
assert.equal(
|
|
currentURL(),
|
|
'/datasets/urn:li:dataset:(urn:li:dataPlatform:hdfs,%2Fsome%2Fpath%2Fwith%2Fdirectories%2Fadataset1,PROD)/schema'
|
|
);
|
|
assert.equal(breadcrumbs.length, 8, 'There are 8 links in breadcrumb');
|
|
assert.dom(breadCrumbClass).hasText('Datasets PROD hdfs some path with directories adataset1');
|
|
});
|
|
});
|