mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-03 20:17:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) HashiCorp, Inc.
 | 
						|
 * SPDX-License-Identifier: MPL-2.0
 | 
						|
 */
 | 
						|
 | 
						|
import { module, test } from 'qunit';
 | 
						|
import { setupRenderingTest } from 'ember-qunit';
 | 
						|
import { render } from '@ember/test-helpers';
 | 
						|
import { setupEngine } from 'ember-engines/test-support';
 | 
						|
import { CLUSTER_STATES } from 'core/helpers/cluster-states';
 | 
						|
import hbs from 'htmlbars-inline-precompile';
 | 
						|
 | 
						|
module('Integration | Component | replication-primary-card', function (hooks) {
 | 
						|
  setupRenderingTest(hooks);
 | 
						|
  setupEngine(hooks, 'replication');
 | 
						|
 | 
						|
  test('it renders', async function (assert) {
 | 
						|
    const title = 'Last WAL';
 | 
						|
    const description = 'WALL-E';
 | 
						|
    const metric = '3000';
 | 
						|
 | 
						|
    this.set('title', title);
 | 
						|
    this.set('description', description);
 | 
						|
    this.set('metric', metric);
 | 
						|
 | 
						|
    await render(
 | 
						|
      hbs`
 | 
						|
      <ReplicationPrimaryCard
 | 
						|
        @title={{this.title}}
 | 
						|
        @description={{this.description}}
 | 
						|
        @metric='3000'
 | 
						|
      />`,
 | 
						|
      { owner: this.engine }
 | 
						|
    );
 | 
						|
 | 
						|
    assert.dom('[data-test-hasError]').doesNotExist('shows no error for non-State cards');
 | 
						|
 | 
						|
    assert.dom('.last-wal').includesText(title);
 | 
						|
    assert.dom('[data-test-description]').includesText(description);
 | 
						|
    assert.dom('[data-test-metric]').includesText(metric);
 | 
						|
  });
 | 
						|
 | 
						|
  Object.keys(CLUSTER_STATES).forEach((state) => {
 | 
						|
    test(`it renders a card when cluster has the ${state} state`, async function (assert) {
 | 
						|
      this.set('glyph', CLUSTER_STATES[state].glyph);
 | 
						|
      this.set('state', state);
 | 
						|
 | 
						|
      await render(
 | 
						|
        hbs`
 | 
						|
        <ReplicationPrimaryCard
 | 
						|
          @title='State'
 | 
						|
          @description='Updated every ten seconds.'
 | 
						|
          @glyph={{this.glyph}}
 | 
						|
          @metric={{this.state}}
 | 
						|
        />`,
 | 
						|
        { owner: this.engine }
 | 
						|
      );
 | 
						|
 | 
						|
      if (CLUSTER_STATES[state].isOk) {
 | 
						|
        assert.dom('[data-test-hasError]').doesNotExist();
 | 
						|
        assert.dom('[data-test-cluster-state-icon]').exists('shows an icon if state is ok');
 | 
						|
      } else {
 | 
						|
        assert.dom('[data-test-hasError]').exists('shows an error if the cluster state is not ok');
 | 
						|
        assert.dom('[data-test-cluster-state-icon]').doesNotExist('does not show an icon if state is not ok');
 | 
						|
      }
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |