mirror of
https://github.com/status-im/consul.git
synced 2025-01-12 06:44:41 +00:00
5fb9df1640
* 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 <Blog URL>, 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 BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
84 lines
3.2 KiB
JavaScript
84 lines
3.2 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { module, test, skip } from 'qunit';
|
|
import { setupTest } from 'ember-qunit';
|
|
import Route from '@ember/routing/route';
|
|
import Mixin from 'consul-ui/mixins/with-blocking-actions';
|
|
import sinon from 'sinon';
|
|
|
|
module('Unit | Mixin | with blocking actions', function (hooks) {
|
|
setupTest(hooks);
|
|
|
|
hooks.beforeEach(function () {
|
|
this.subject = function () {
|
|
const MixedIn = Route.extend(Mixin);
|
|
this.owner.register('test-container:with-blocking-actions-object', MixedIn);
|
|
return this.owner.lookup('test-container:with-blocking-actions-object');
|
|
};
|
|
});
|
|
|
|
// Replace this with your real tests.
|
|
test('it works', function (assert) {
|
|
const subject = this.subject();
|
|
assert.ok(subject);
|
|
});
|
|
skip('init sets up feedback properly');
|
|
test('afterCreate just calls afterUpdate', function (assert) {
|
|
const subject = this.subject();
|
|
const expected = [1, 2, 3, 4];
|
|
const afterUpdate = sinon.stub(subject, 'afterUpdate').returns(expected);
|
|
const actual = subject.afterCreate(expected);
|
|
assert.deepEqual(actual, expected);
|
|
assert.ok(afterUpdate.calledOnce);
|
|
});
|
|
test('afterUpdate calls transitionTo without the last part of the current route name', function (assert) {
|
|
const subject = this.subject();
|
|
const expected = 'dc.kv';
|
|
subject.routeName = expected + '.edit';
|
|
const transitionTo = sinon.stub(subject, 'transitionTo').returnsArg(0);
|
|
const actual = subject.afterUpdate();
|
|
assert.equal(actual, expected);
|
|
assert.ok(transitionTo.calledOnce);
|
|
});
|
|
test('afterDelete calls transitionTo without the last part of the current route name if the last part is not `index`', function (assert) {
|
|
const subject = this.subject();
|
|
const expected = 'dc.kv';
|
|
subject.routeName = expected + '.edit';
|
|
const transitionTo = sinon.stub(subject, 'transitionTo').returnsArg(0);
|
|
const actual = subject.afterDelete();
|
|
assert.equal(actual, expected);
|
|
assert.ok(transitionTo.calledOnce);
|
|
});
|
|
test('afterDelete calls refresh if the last part is `index`', function (assert) {
|
|
const subject = this.subject();
|
|
subject.routeName = 'dc.kv.index';
|
|
const expected = 'refresh';
|
|
const refresh = sinon.stub(subject, 'refresh').returns(expected);
|
|
const actual = subject.afterDelete();
|
|
assert.equal(actual, expected);
|
|
assert.ok(refresh.calledOnce);
|
|
});
|
|
test('the error hooks return type', function (assert) {
|
|
assert.expect(3);
|
|
|
|
const subject = this.subject();
|
|
const expected = 'success';
|
|
['errorCreate', 'errorUpdate', 'errorDelete'].forEach(function (item) {
|
|
const actual = subject[item](expected, {});
|
|
assert.equal(actual, expected);
|
|
});
|
|
});
|
|
test('action cancel just calls afterUpdate', function (assert) {
|
|
const subject = this.subject();
|
|
const expected = [1, 2, 3, 4];
|
|
const afterUpdate = sinon.stub(subject, 'afterUpdate').returns(expected);
|
|
// TODO: unsure as to whether ember testing should actually bind this for you?
|
|
const actual = subject.actions.cancel.bind(subject)(expected);
|
|
assert.deepEqual(actual, expected);
|
|
assert.ok(afterUpdate.calledOnce);
|
|
});
|
|
});
|