mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 18:48:08 +00:00 
			
		
		
		
	 61ee28ba3b
			
		
	
	61ee28ba3b
	
	
	
		
			
			* replace paddingTop with clas * use hds alert for AlertInline component * remve isSmall arg * add test selector back * remove mimicRefresh arg * update assertion for alert inline component * update string-list * use alert inline for string-list * add changelog * update block instances of alert inline * remove p tags from test selectors * minor cleanup
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * Copyright (c) HashiCorp, Inc.
 | |
|  * SPDX-License-Identifier: BUSL-1.1
 | |
|  */
 | |
| 
 | |
| import { module, test } from 'qunit';
 | |
| import { setupRenderingTest } from 'ember-qunit';
 | |
| import { render, settled, find, waitUntil } from '@ember/test-helpers';
 | |
| import hbs from 'htmlbars-inline-precompile';
 | |
| 
 | |
| const SHARED_STYLES = {
 | |
|   success: {
 | |
|     icon: 'check-circle-fill',
 | |
|     class: 'hds-alert--color-success',
 | |
|   },
 | |
|   warning: {
 | |
|     icon: 'alert-triangle-fill',
 | |
|     class: 'hds-alert--color-warning',
 | |
|   },
 | |
| };
 | |
| module('Integration | Component | alert-inline', function (hooks) {
 | |
|   setupRenderingTest(hooks);
 | |
| 
 | |
|   test('it renders alert message for each @color arg', async function (assert) {
 | |
|     const COLORS = {
 | |
|       ...SHARED_STYLES,
 | |
|       neutral: {
 | |
|         icon: 'info-fill',
 | |
|         class: 'hds-alert--color-neutral',
 | |
|       },
 | |
|       highlight: {
 | |
|         icon: 'info-fill',
 | |
|         class: 'hds-alert--color-highlight',
 | |
|       },
 | |
|       critical: {
 | |
|         icon: 'alert-diamond-fill',
 | |
|         class: 'hds-alert--color-critical',
 | |
|       },
 | |
|     };
 | |
| 
 | |
|     const { neutral } = COLORS; // default color
 | |
|     await render(hbs`<AlertInline @message="some very important alert" />`);
 | |
|     assert.dom('[data-test-inline-error-message]').hasText('some very important alert');
 | |
|     assert.dom(`[data-test-icon="${neutral.icon}"]`).exists('renders default icon');
 | |
|     assert.dom('[data-test-inline-alert]').hasClass(neutral.class, 'renders default class');
 | |
| 
 | |
|     // assert deprecated @type arg values map to expected color
 | |
|     for (const type in COLORS) {
 | |
|       this.color = type;
 | |
|       const color = COLORS[type];
 | |
|       await render(hbs`<AlertInline @color={{this.color}}  @message="some very important alert" />`);
 | |
|       assert.dom(`[data-test-icon="${color.icon}"]`).exists(`@color="${type}" renders icon: ${color.icon}`);
 | |
|       assert
 | |
|         .dom('[data-test-inline-alert]')
 | |
|         .hasClass(color.class, `@color="${type}" renders class: ${color.class}`);
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   test('it renders alert color for each deprecated @type arg', async function (assert) {
 | |
|     const OLD_TYPES = {
 | |
|       ...SHARED_STYLES,
 | |
|       info: {
 | |
|         icon: 'info-fill',
 | |
|         class: 'hds-alert--color-highlight',
 | |
|       },
 | |
|       danger: {
 | |
|         icon: 'alert-diamond-fill',
 | |
|         class: 'hds-alert--color-critical',
 | |
|       },
 | |
|     };
 | |
|     // assert deprecated @type arg values map to expected color
 | |
|     for (const type in OLD_TYPES) {
 | |
|       this.type = type;
 | |
|       const color = OLD_TYPES[type];
 | |
|       await render(hbs`<AlertInline @type={{this.type}}  @message="some very important alert" />`);
 | |
|       assert
 | |
|         .dom(`[data-test-icon="${color.icon}"]`)
 | |
|         .exists(`deprecated @type="${type}" renders icon: ${color.icon}`);
 | |
|       assert
 | |
|         .dom('[data-test-inline-alert]')
 | |
|         .hasClass(color.class, `deprecated @type="${type}" renders class: ${color.class}`);
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   test('it mimics loading when message changes', async function (assert) {
 | |
|     this.message = 'some very important alert';
 | |
|     await render(hbs`
 | |
|     <AlertInline @message={{this.message}}/>
 | |
|     `);
 | |
|     assert
 | |
|       .dom('[data-test-inline-error-message]')
 | |
|       .hasText('some very important alert', 'it renders original message');
 | |
| 
 | |
|     this.set('message', 'some changed alert!!!');
 | |
|     await waitUntil(() => find('[data-test-icon="loading"]'));
 | |
|     assert.ok(find('[data-test-icon="loading"]'), 'it shows loading icon when message changes');
 | |
|     await settled();
 | |
|     assert
 | |
|       .dom('[data-test-inline-error-message]')
 | |
|       .hasText('some changed alert!!!', 'it shows updated message');
 | |
|   });
 | |
| });
 |