mirror of
https://github.com/datahub-project/datahub.git
synced 2025-08-11 18:56:41 +00:00
67 lines
2.4 KiB
TypeScript
67 lines
2.4 KiB
TypeScript
import { module, test } from 'qunit';
|
|
import { setupRenderingTest } from 'ember-qunit';
|
|
import { render, triggerEvent } from '@ember/test-helpers';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
import { stubService } from '@datahub/utils/test-helpers/stub-service';
|
|
|
|
module('Integration | Component | dynamic-components/header', function(hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
test('it renders and behaves as expected', async function(assert) {
|
|
stubService('configurator', {
|
|
getConfig(): unknown {
|
|
return { appHelp: 'https://stardewvalleywiki.com/Stardew_Valley_Wiki' };
|
|
}
|
|
});
|
|
const sampleRenderProps = {
|
|
name: 'dynamic-components/header',
|
|
options: {
|
|
className: 'mining',
|
|
title: 'Gotta mine em all!',
|
|
contentComponents: [
|
|
{
|
|
name: 'dynamic-components/text',
|
|
options: {
|
|
text: 'Mining tutorial'
|
|
}
|
|
},
|
|
{
|
|
name: 'dynamic-components/tooltip',
|
|
options: {
|
|
triggerComponent: {
|
|
name: 'dynamic-components/icon',
|
|
options: { icon: 'question-circle', prefix: 'far', className: 'pikachu-icon' }
|
|
},
|
|
className: 'pikachu',
|
|
triggerOn: 'hover',
|
|
contentComponents: [
|
|
{
|
|
name: 'dynamic-components/text',
|
|
options: { text: 'Click here to learn how pikachu became a stardew valley gamer!' }
|
|
},
|
|
{
|
|
name: 'dynamic-components/wiki-link',
|
|
options: { wikiKey: 'appHelp', className: 'pikachu-miner-link' }
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
};
|
|
this.set('props', sampleRenderProps);
|
|
|
|
await render(hbs`{{component this.props.name options=this.props.options}}`);
|
|
assert.dom('.dynamic-tooltip').exists('Renders a dynamic tooltip');
|
|
assert.dom('.dynamic-header').exists('Renders a dynamic header');
|
|
assert.dom('.mining').exists('Gives us the correct custom class');
|
|
|
|
assert.dom('.pikachu-icon').exists('Renders the nested icon element');
|
|
assert.dom('.dynamic-header__title').hasTextContaining('Gotta mine em all!');
|
|
|
|
await triggerEvent('.dynamic-tooltip', 'mouseenter');
|
|
assert.dom('.dynamic-tooltip__content .pikachu-miner-link').exists('Renders the nested link');
|
|
assert.dom('.dynamic-header__content').hasTextContaining('Mining tutorial');
|
|
});
|
|
});
|