vault/ui/tests/integration/components/wrap-ttl-test.js
hashicorp-copywrite[bot] 0b12cdcfd1
[COMPLIANCE] License changes (#22290)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License.

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* add missing license headers

* Update copyright file headers to BUS-1.1

* Fix test that expected exact offset on hcl file

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Sarah Thompson <sthompson@hashicorp.com>
Co-authored-by: Brian Kassouf <bkassouf@hashicorp.com>
2023-08-10 18:14:03 -07:00

50 lines
2.0 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import Sinon from 'sinon';
import { setupRenderingTest } from 'ember-qunit';
import { render, click, fillIn } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import waitForError from 'vault/tests/helpers/wait-for-error';
module('Integration | Component | wrap ttl', function (hooks) {
setupRenderingTest(hooks);
test('it requires `onChange`', async function (assert) {
const promise = waitForError();
render(hbs`<WrapTtl />`);
const err = await promise;
assert.ok(err.message.includes('`onChange` handler is a required attr in'), 'asserts without onChange');
});
test('it renders', async function (assert) {
const changeSpy = Sinon.spy();
this.set('onChange', changeSpy);
await render(hbs`<WrapTtl @onChange={{this.onChange}} />`);
assert.ok(changeSpy.calledWithExactly('30m'), 'calls onChange with 30m default on render');
assert.dom('[data-test-ttl-form-label]').hasText('Wrap response');
});
test('it nulls out value when you uncheck wrapResponse', async function (assert) {
const changeSpy = Sinon.spy();
this.set('onChange', changeSpy);
await render(hbs`<WrapTtl @onChange={{this.onChange}} />`);
await click('[data-test-ttl-form-label]');
assert.ok(changeSpy.calledWithExactly(null), 'calls onChange with null');
});
test('it sends value changes to onChange handler', async function (assert) {
const changeSpy = Sinon.spy();
this.set('onChange', changeSpy);
await render(hbs`<WrapTtl @onChange={{this.onChange}} />`);
// for testing purposes we need to input unit first because it keeps seconds value
await fillIn('[data-test-select="ttl-unit"]', 'h');
assert.ok(changeSpy.calledWithExactly('30h'), 'calls onChange correctly on time input');
await fillIn('[data-test-ttl-value]', '20');
assert.ok(changeSpy.calledWithExactly('20h'), 'calls onChange correctly on unit change');
});
});