70 lines
1.4 KiB
JavaScript
70 lines
1.4 KiB
JavaScript
import Vue from 'vue';
|
|
import eventHub from '~/deploy_keys/eventhub';
|
|
import actionBtn from '~/deploy_keys/components/action_btn.vue';
|
|
|
|
describe('Deploy keys action btn', () => {
|
|
const data = getJSONFixture('deploy_keys/keys.json');
|
|
const deployKey = data.enabled_keys[0];
|
|
let vm;
|
|
|
|
beforeEach((done) => {
|
|
const ActionBtnComponent = Vue.extend(actionBtn);
|
|
|
|
vm = new ActionBtnComponent({
|
|
propsData: {
|
|
deployKey,
|
|
type: 'enable',
|
|
},
|
|
}).$mount();
|
|
|
|
setTimeout(done);
|
|
});
|
|
|
|
it('renders the type as uppercase', () => {
|
|
expect(
|
|
vm.$el.textContent.trim(),
|
|
).toBe('Enable');
|
|
});
|
|
|
|
it('sends eventHub event with btn type', (done) => {
|
|
spyOn(eventHub, '$emit');
|
|
|
|
vm.$el.click();
|
|
|
|
setTimeout(() => {
|
|
expect(
|
|
eventHub.$emit,
|
|
).toHaveBeenCalledWith('enable.key', deployKey);
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('shows loading spinner after click', (done) => {
|
|
vm.$el.click();
|
|
|
|
setTimeout(() => {
|
|
expect(
|
|
vm.$el.querySelector('.fa'),
|
|
).toBeDefined();
|
|
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('disables button after click', (done) => {
|
|
vm.$el.click();
|
|
|
|
setTimeout(() => {
|
|
expect(
|
|
vm.$el.classList.contains('disabled'),
|
|
).toBeTruthy();
|
|
|
|
expect(
|
|
vm.$el.getAttribute('disabled'),
|
|
).toBe('disabled');
|
|
|
|
done();
|
|
});
|
|
});
|
|
});
|