/* eslint-disable ember-a11y-testing/a11y-audit-called */ import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; import { click, findAll, render } from '@ember/test-helpers'; import { hbs } from 'ember-cli-htmlbars'; module('Integration | Component | breadcrumbs', function (hooks) { setupRenderingTest(hooks); test('it declaratively renders a list of registered crumbs', async function (assert) { this.set('isRegistered', false); this.set('toggleCrumb', () => this.set('isRegistered', !this.isRegistered)); await render(hbs` {{#if this.isRegistered}} {{/if}} `); assert .dom('[data-test-crumb]') .exists({ count: 1 }, 'We register one crumb'); assert .dom('[data-test-crumb]') .hasText('Zoey', 'The first registered crumb is Zoey'); await click('[data-test-button]'); const crumbs = await findAll('[data-test-crumb]'); assert .dom('[data-test-crumb]') .exists({ count: 2 }, 'The second crumb registered successfully'); assert .dom(crumbs[0]) .hasText( 'Zoey', 'Breadcrumbs maintain the order in which they are declared' ); assert .dom(crumbs[1]) .hasText( 'Tomster', 'Breadcrumbs maintain the order in which they are declared' ); await click('[data-test-button]'); assert .dom('[data-test-crumb]') .exists({ count: 1 }, 'We deregister one crumb'); assert .dom('[data-test-crumb]') .hasText( 'Zoey', 'Zoey remains in the template after Tomster deregisters' ); }); test('it can register complex crumb objects', async function (assert) { await render(hbs`
    {{#each bb as |crumb|}}
  • {{crumb.args.crumb.name}}
  • {{/each}}
`); assert .dom('[data-test-crumb]') .hasText( 'Tomster', 'We can access the registered breadcrumbs in the template' ); }); });