text: import hbs from 'htmlbars-inline-precompile';
  import sinon from 'sinon';
  import {click, find, render} from '@ember/test-helpers';
  import {describe, it} from 'mocha';
  import {expect} from 'chai';
  import {setupRenderingTest} from 'ember-mocha';
  
  describe('Integration: Component: gh-notification', function () {
      setupRenderingTest();
  
      it('renders', async function () {
          this.set('message', {message: 'Test message', type: 'success'});
  
          await render(hbs`{{gh-notification message=message}}`);
  
          expect(find('article.gh-notification')).to.exist;
  
          let notification = find('.gh-notification');
          expect(notification).to.have.class('gh-notification-passive');
          expect(notification).to.contain.text('Test message');
      });
  
      it('maps message types to CSS classes', async function () {
          this.set('message', {message: 'Test message', type: 'success'});
  
          await render(hbs`{{gh-notification message=message}}`);
          let notification = find('.gh-notification');
  
          this.set('message.type', 'error');
          expect(notification, 'success class is red')
              .to.have.class('gh-notification-red');
  
          this.set('message.type', 'warn');
          expect(notification, 'success class is yellow')
              .to.have.class('gh-notification-yellow');
      });
  
      it('closes notification through notifications service', async function () {
          let message = {message: 'Test close', type: 'success'};
          this.set('message', message);
  
          let notifications = this.owner.lookup('service:notifications');
          notifications.closeNotification = sinon.stub();
  
          await render(hbs`{{gh-notification message=message}}`);
          expect(find('.gh-notification')).to.exist;
  
          await click('[data-test-button="close-notification"]');
  
          expect(notifications.closeNotification.calledWith(message)).to.be.true;
      });
  });
  