mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	 1c16994bc3
			
		
	
	1c16994bc3
	
	
	
		
			
			* Add specificity to replication title selectors * Use specific selectors for replication titles in tests
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.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, waitFor } from '@ember/test-helpers';
 | |
| import hbs from 'htmlbars-inline-precompile';
 | |
| import { setupMirage } from 'ember-cli-mirage/test-support';
 | |
| 
 | |
| const MODEL = {
 | |
|   replicationMode: 'dr',
 | |
|   dr: { mode: 'primary' },
 | |
|   performance: { mode: 'primary' },
 | |
|   replicationAttrs: {
 | |
|     mode: 'secondary',
 | |
|     clusterId: '12ab',
 | |
|     replicationDisabled: false,
 | |
|   },
 | |
| };
 | |
| 
 | |
| module('Integration | Component | replication-page', function (hooks) {
 | |
|   setupRenderingTest(hooks);
 | |
|   setupMirage(hooks);
 | |
| 
 | |
|   hooks.beforeEach(function () {
 | |
|     this.set('model', MODEL);
 | |
|   });
 | |
| 
 | |
|   test('it renders', async function (assert) {
 | |
|     await render(hbs`<ReplicationPage @model={{this.model}} />`);
 | |
|     assert.dom('[data-test-replication-page]').exists();
 | |
|     assert.dom('[data-test-layout-loading]').doesNotExist();
 | |
|   });
 | |
| 
 | |
|   test('it renders loader when either clusterId is unknown or mode is bootstrapping', async function (assert) {
 | |
|     this.set('model.replicationAttrs.clusterId', '');
 | |
|     await render(hbs`<ReplicationPage @model={{this.model}} />`);
 | |
|     assert.dom('[data-test-layout-loading]').exists();
 | |
| 
 | |
|     this.set('model.replicationAttrs.clusterId', '123456');
 | |
|     this.set('model.replicationAttrs.mode', 'bootstrapping');
 | |
|     await render(hbs`<ReplicationPage @model={{this.model}} />`);
 | |
|     assert.dom('[data-test-layout-loading]').exists();
 | |
|   });
 | |
| 
 | |
|   test.skip('it re-fetches data when replication mode changes', async function (assert) {
 | |
|     assert.expect(4);
 | |
|     this.server.get('sys/replication/:mode/status', (schema, req) => {
 | |
|       assert.strictEqual(
 | |
|         req.params.mode,
 | |
|         this.model.replicationMode,
 | |
|         `fetchStatus called with correct mode: ${this.model.replicationMode}`
 | |
|       );
 | |
|       return {
 | |
|         data: {
 | |
|           mode: 'primary',
 | |
|         },
 | |
|       };
 | |
|     });
 | |
|     await render(
 | |
|       hbs`<ReplicationPage @model={{this.model}} as |Page|><Page.header @showTabs={{true}} /></ReplicationPage>`
 | |
|     );
 | |
|     await waitFor('[data-test-replication-title="dr"]');
 | |
|     // Title has spaces and newlines, so we can't use hasText because it won't match exactly
 | |
|     assert.dom('[data-test-replication-title="dr"]').includesText('Disaster Recovery');
 | |
|     this.set('model', { ...MODEL, replicationMode: 'performance' });
 | |
|     await settled();
 | |
|     assert.dom('[data-test-replication-title="performance"]').includesText('Performance');
 | |
|   });
 | |
| });
 |