2019-08-31 20:51:14 -07:00

66 lines
1.9 KiB
TypeScript

import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, triggerEvent, findAll, find } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import { nonHdfsUrn } from 'wherehows-web/mirage/fixtures/urn';
import fabrics from 'wherehows-web/mirage/fixtures/fabrics';
module('Integration | Component | datasets/dataset-fabric-switcher', function(hooks) {
setupRenderingTest(hooks);
const contentSelector = '.dataset-fabric-switcher__fabrics';
const triggerSelector = '.dataset-fabric-switcher__fabric';
test('component rendering', async function(assert) {
assert.expect(1);
await render(hbs`
{{datasets/dataset-fabric-switcher}}
`);
assert.ok(this.element.querySelector('.dataset-fabric-switcher'), 'expected component class exists in DOM');
});
test('toggle action shows and hides dropdown', async function(assert) {
assert.expect(3);
this.set('urn', nonHdfsUrn);
await render(hbs`
{{datasets/dataset-fabric-switcher urn=urn}}
`);
assert.notOk(find(contentSelector), 'expected dropdown content class is hidden');
await triggerEvent(triggerSelector, 'mouseenter');
assert.ok(find(contentSelector), 'expected dropdown content class is shown');
await triggerEvent(triggerSelector, 'mouseleave');
assert.notOk(find(contentSelector), 'expected dropdown content class is hidden');
});
test('rendering of fabrics', async function(assert) {
assert.expect(1);
this.set('urn', nonHdfsUrn);
this.setProperties({
urn: nonHdfsUrn,
fabrics
});
await render(hbs`
{{datasets/dataset-fabric-switcher urn=urn fabrics=fabrics}}
`);
await triggerEvent(triggerSelector, 'mouseenter');
assert.equal(
findAll(`${contentSelector} li`).length,
fabrics.length,
'expected fabrics shown to equal default list of fabrics'
);
});
});