Adds tests

This commit is contained in:
Filipa Lacerda 2016-11-14 17:22:21 +00:00
parent 56aaa3973b
commit dd80e09a7b

View file

@ -9,7 +9,6 @@ describe('Environment item', () => {
describe('When item is folder', () => { describe('When item is folder', () => {
let mockItem; let mockItem;
let component;
beforeEach(() => { beforeEach(() => {
mockItem = { mockItem = {
@ -35,38 +34,137 @@ describe('Environment item', () => {
}, },
], ],
}; };
});
component = new window.gl.environmentsList.EnvironmentItem({ it('Should render clickable folder icon and name', () => {
const component = new window.gl.environmentsList.EnvironmentItem({
el: document.querySelector('tr#environment-row'), el: document.querySelector('tr#environment-row'),
propsData: { propsData: {
model: mockItem, model: mockItem,
toggleRow: () => {},
'can-create-deployment': false, 'can-create-deployment': false,
'can-read-environment': true, 'can-read-environment': true,
}, },
}); });
});
it('Should render clickable folder icon and name', () => { expect(component.$el.querySelector('.folder-name').textContent).toContain(mockItem.name);
expect(document.querySelector('.folder-name').textContent).toContain(mockItem.name); expect(component.$el.querySelector('.folder-icon')).toBeDefined();
expect(document.querySelector('.folder-icon')).toBeDefined();
}); });
it('Should render the number of children in a badge', () => { it('Should render the number of children in a badge', () => {
expect(document.querySelector('.folder-name .badge').textContent).toContain(mockItem.children.length); const component = new window.gl.environmentsList.EnvironmentItem({
el: document.querySelector('tr#environment-row'),
propsData: {
model: mockItem,
toggleRow: () => {},
'can-create-deployment': false,
'can-read-environment': true,
},
}); });
it('Should not render any information other than the name', () => { expect(component.$el.querySelector('.folder-name .badge').textContent).toContain(mockItem.children.length);
}); });
describe('when clicked', () => { describe('when clicked', () => {
it('Should render child row', () => { it('Should call the given prop', () => {
const component = new window.gl.environmentsList.EnvironmentItem({
el: document.querySelector('tr#environment-row'),
propsData: {
model: mockItem,
toggleRow: () => {
console.log('here!');
},
'can-create-deployment': false,
'can-read-environment': true,
},
});
spyOn(component.$options.propsData, 'toggleRow');
component.$el.querySelector('.folder-name').click();
expect(component.$options.propsData.toggleRow).toHaveBeenCalled();
}); });
}); });
}); });
describe('when item is not folder', () => { describe('when item is not folder', () => {
it('should render environment name', () => { let environment;
beforeEach(() => {
environment = {
id: 31,
name: 'production',
state: 'stopped',
external_url: 'http://external.com',
environment_type: null,
last_deployment: {
id: 66,
iid: 6,
sha: '500aabcb17c97bdcf2d0c410b70cb8556f0362dd',
ref: {
name: 'master',
ref_url: 'http://localhost:3000/root/ci-folders/tree/master',
},
tag: true,
'last?': true,
user: {
name: 'Administrator',
username: 'root',
id: 1,
state: 'active',
avatar_url: 'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
web_url: 'http://localhost:3000/root',
},
commit: {
id: '500aabcb17c97bdcf2d0c410b70cb8556f0362dd',
short_id: '500aabcb',
title: 'Update .gitlab-ci.yml',
author_name: 'Administrator',
author_email: 'admin@example.com',
created_at: '2016-11-07T18:28:13.000+00:00',
message: 'Update .gitlab-ci.yml',
author: {
name: 'Administrator',
username: 'root',
id: 1,
state: 'active',
avatar_url: 'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon',
web_url: 'http://localhost:3000/root',
},
commit_url: 'http://localhost:3000/root/ci-folders/tree/500aabcb17c97bdcf2d0c410b70cb8556f0362dd',
},
deployable: {
id: 1279,
name: 'deploy',
build_url: 'http://localhost:3000/root/ci-folders/builds/1279',
retry_url: 'http://localhost:3000/root/ci-folders/builds/1279/retry',
},
manual_actions: [
{
name: 'action',
play_url: 'http://localhost:3000/play',
},
],
},
'stoppable?': true,
environment_url: 'http://localhost:3000/root/ci-folders/environments/31',
created_at: '2016-11-07T11:11:16.525Z',
updated_at: '2016-11-10T15:55:58.778Z',
};
});
it('should render environment name', () => {
const component = new window.gl.environmentsList.EnvironmentItem({
el: document.querySelector('tr#environment-row'),
propsData: {
model: environment,
toggleRow: () => {},
'can-create-deployment': false,
'can-read-environment': true,
},
});
debugger;
}); });
describe('With deployment', () => { describe('With deployment', () => {