57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
import { moduleForComponent, test } from 'ember-qunit';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
import sinon from 'sinon';
|
|
import { create } from 'ember-cli-page-object';
|
|
import itemDetails from 'vault/tests/pages/components/identity/item-details';
|
|
import Ember from 'ember';
|
|
|
|
const component = create(itemDetails);
|
|
const { getOwner } = Ember;
|
|
|
|
moduleForComponent('identity/item-details', 'Integration | Component | identity/item details', {
|
|
integration: true,
|
|
beforeEach() {
|
|
component.setContext(this);
|
|
getOwner(this).lookup('service:flash-messages').registerTypes(['success']);
|
|
},
|
|
afterEach() {
|
|
component.removeContext();
|
|
},
|
|
});
|
|
|
|
test('it renders the disabled warning', function(assert) {
|
|
let model = Ember.Object.create({
|
|
save() {
|
|
return Ember.RSVP.resolve();
|
|
},
|
|
disabled: true,
|
|
canEdit: true,
|
|
});
|
|
sinon.spy(model, 'save');
|
|
this.set('model', model);
|
|
this.render(hbs`{{identity/item-details model=model}}`);
|
|
assert.dom('[data-test-disabled-warning]').exists();
|
|
component.enable();
|
|
|
|
assert.ok(model.save.calledOnce, 'clicking enable calls model save');
|
|
});
|
|
|
|
test('it does not render the button if canEdit is false', function(assert) {
|
|
let model = Ember.Object.create({
|
|
disabled: true,
|
|
});
|
|
|
|
this.set('model', model);
|
|
this.render(hbs`{{identity/item-details model=model}}`);
|
|
assert.dom('[data-test-disabled-warning]').exists('shows the warning banner');
|
|
assert.dom('[data-test-enable]').doesNotExist('does not show the enable button');
|
|
});
|
|
|
|
test('it does not render the banner when item is enabled', function(assert) {
|
|
let model = Ember.Object.create();
|
|
this.set('model', model);
|
|
|
|
this.render(hbs`{{identity/item-details model=model}}`);
|
|
assert.dom('[data-test-disabled-warning]').doesNotExist('does not show the warning banner');
|
|
});
|