mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-11-03 20:17:59 +00:00 
			
		
		
		
	* UI: Part 1 - hds adoption replace <Modal> (#23363) * replace policy-form modal * replace clients/attribution modal * clients/config modal * scope form odal * remove button type * include toolbar to match other example templates * rotate credentials modal * add toolbar button class for hds buttons * transformation-edit modal * add back test selector * add route arg to button! * update link status * fix link-status tests * remove prevent default * update db tests * update tests * use page alert for hcp link status banner * fix scopy button selector * fix sidebar test * change to neutral banner * UI: Part 2 - hds adoption replace <Modal> (#23398) * upgrade HDS library (adds support for snippet containers * cleanup flight icons * replace transit key action modals * re-add deps as devDeps * remove line * address transit tests * UI: Part 3 - hds adoption replace <Modal> (#23415) * cleanup css * cleanup extra type attr * masked input download modal * use Hds::Button in download button" * fix size of modal * tiny icon fix * refactor download button to always render download icon * update tests * UI: Part 3.5 - hds adoption replace <Modal> (#23448) * replication-promote modal * replication component modals * replication add secondary modal * move update text for diff * UI: Part 4 - hds adoption replace <Modal> (#23451) * k8 configure modal * kv delete modal * ldap modals * pki modals * add trash icon * move deps * UI: Part 5 - hds adoption replace <Modal> (#23471) * replace confirmation modals --------- * UI: Part 6 - hds adoption replace <Modal> (#23484) * search select with modal * policy search select modal * replace date dropdown for client dashboard * change padding to top * update policy example args * lolllll test typo wow * update dropdown tests * shamir flow modals! * add one more container * update test selectors * UI: Final hds adoption replace <Modal> cleanup PR (#23522) * search select with modal * policy search select modal * replace date dropdown for client dashboard * change padding to top * update policy example args * lolllll test typo wow * update dropdown tests * shamir flow modals! * add one more container * update test selectors * remove wormhole and modal component * fix selectors * uninstall wormhole * remove shamir-modal-flow class * fix confirm modal test * fix pki and kv test * fix toolbar selector kv * client and download button test * fix-confirmation-modal-padding * fix replication modal tests so relevant modal opens (#23540) * more confirmation modal tests * adds changelog
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/**
 | 
						|
 * Copyright (c) HashiCorp, Inc.
 | 
						|
 * SPDX-License-Identifier: BUSL-1.1
 | 
						|
 */
 | 
						|
 | 
						|
import { module, test } from 'qunit';
 | 
						|
import { setupRenderingTest } from 'ember-qunit';
 | 
						|
import { render, fillIn, click } from '@ember/test-helpers';
 | 
						|
import { hbs } from 'ember-cli-htmlbars';
 | 
						|
import { setupMirage } from 'ember-cli-mirage/test-support';
 | 
						|
 | 
						|
module('Integration | Component | mfa-method-form', function (hooks) {
 | 
						|
  setupRenderingTest(hooks);
 | 
						|
  setupMirage(hooks);
 | 
						|
 | 
						|
  hooks.beforeEach(function () {
 | 
						|
    this.store = this.owner.lookup('service:store');
 | 
						|
    this.model = this.store.createRecord('mfa-method');
 | 
						|
    this.model.type = 'totp';
 | 
						|
  });
 | 
						|
 | 
						|
  test('it should render correct fields', async function (assert) {
 | 
						|
    assert.expect(6);
 | 
						|
 | 
						|
    await render(hbs`
 | 
						|
      <Mfa::MethodForm
 | 
						|
        @model={{this.model}}
 | 
						|
        @hasActions="true"
 | 
						|
      />
 | 
						|
          `);
 | 
						|
    assert.dom('[data-test-input="issuer"]').exists(`Issuer field input renders`);
 | 
						|
    assert.dom('[data-test-input="period"]').exists('Period field ttl renders');
 | 
						|
    assert.dom('[data-test-input="key_size"]').exists('Key size field input renders');
 | 
						|
    assert.dom('[data-test-input="qr_size"]').exists('QR size field input renders');
 | 
						|
    assert.dom('[data-test-input="algorithm"]').exists(`Algorithm field radio input renders`);
 | 
						|
    assert
 | 
						|
      .dom('[data-test-input="max_validation_attempts"]')
 | 
						|
      .exists(`Max validation attempts field input renders`);
 | 
						|
  });
 | 
						|
 | 
						|
  test('it should create new mfa method', async function (assert) {
 | 
						|
    assert.expect(3);
 | 
						|
 | 
						|
    this.server.post('/identity/mfa/method/totp', () => {
 | 
						|
      assert.ok(true, 'create request sent to server');
 | 
						|
      return {};
 | 
						|
    });
 | 
						|
 | 
						|
    await render(hbs`
 | 
						|
      <Mfa::MethodForm
 | 
						|
        @hasActions="true"
 | 
						|
        @model={{this.model}}
 | 
						|
        @onSave={{fn (mut this.didSave) true}}
 | 
						|
      />
 | 
						|
          `);
 | 
						|
 | 
						|
    await fillIn('[data-test-input="issuer"]', 'Vault');
 | 
						|
    await click('[data-test-mfa-save]');
 | 
						|
    await fillIn('[data-test-confirmation-modal-input="Edit totp configuration?"]', 'totp');
 | 
						|
    await click('[data-test-confirm-button="Edit totp configuration?"]');
 | 
						|
    assert.true(this.didSave, 'onSave callback triggered');
 | 
						|
    assert.strictEqual(this.model.issuer, 'Vault', 'Issuer property set on model');
 | 
						|
  });
 | 
						|
 | 
						|
  test('it should populate form fields with model data', async function (assert) {
 | 
						|
    assert.expect(3);
 | 
						|
 | 
						|
    this.model.issuer = 'Vault';
 | 
						|
    this.model.period = '30s';
 | 
						|
    this.model.algorithm = 'SHA512';
 | 
						|
 | 
						|
    await render(hbs`
 | 
						|
      <Mfa::MethodForm
 | 
						|
        @hasActions="true"
 | 
						|
        @model={{this.model}}
 | 
						|
      />
 | 
						|
          `);
 | 
						|
    assert.dom('[data-test-input="issuer"]').hasValue('Vault', 'Issuer input is populated');
 | 
						|
    assert.dom('[data-test-ttl-value="Period"]').hasValue('30', 'Period input ttl is populated');
 | 
						|
    const checkedAlgorithm = this.element.querySelector('input[name=algorithm]:checked');
 | 
						|
    assert.dom(checkedAlgorithm).hasValue('SHA512', 'SHA512 radio input is selected');
 | 
						|
  });
 | 
						|
});
 |