Adds tests for environment store.

This commit is contained in:
Filipa Lacerda 2016-10-26 18:17:00 +01:00
parent dcafd476db
commit b1ec3cb8d2
3 changed files with 60 additions and 94 deletions

View file

@ -54,7 +54,7 @@
//humanizes actions names if there are any actions
if (environment.last_deployment.manual_actions) {
environment.last_deployment.manual_actions = environment.last_deployment.manual_actions.map((action) => Object.assign({}, action, {name: gl.text.humanize(action.name)}));
environment.last_deployment.manual_actions = environment.last_deployment.manual_actions.map((action) => action.name = gl.text.humanize(action.name));
}
//transforms created date for deployment in a human readable format
@ -64,21 +64,19 @@
}
if (environment.environment_type !== null) {
const occurs = acc.find((element, index, array) => {
const occurs = acc.filter((element, index, array) => {
return element.children && element.name === environment.environment_type;
});
environment["vue-isChildren"] = true;
if (occurs !== undefined) {
acc[acc.indexOf(occurs)].children.push(environment);
acc[acc.indexOf(occurs)].children.sort(this.sortByName)
if (occurs.length) {
acc[acc.indexOf(occurs[0])].children.push(environment);
acc[acc.indexOf(occurs[0])].children.sort(this.sortByName)
} else {
acc.push({
name: environment.environment_type,
children: [
Object.assign(environment)
]
children: [environment]
});
}
} else {

View file

@ -1,21 +1,58 @@
//= require vue
//= require vue-resource
//= require lib/utils/url_utility
//= require environments/services/environments_service
//= require environments/stores/environments_store
//= require environments/stores/environmnets_store
//= require ./mock_data
//
(() => {
beforeEach(() => {
gl.environmentsService = new EnvironmentsService('test/environments');
gl.environmentsList.EnvironmentsStore.create();
});
describe('Store', () => {
it('starts with a blank state', () => {
it('should start with a blank state', () => {
expect(gl.environmentsList.EnvironmentsStore.state.environments.length).toBe(0);
expect(gl.environmentsList.EnvironmentsStore.state.stoppedCounter).toBe(0);
expect(gl.environmentsList.EnvironmentsStore.state.availableCounter).toBe(0)
});
describe('store environments', () => {
beforeEach(() => {
gl.environmentsList.EnvironmentsStore.storeEnvironments(environmentsList);
});
it('should count stopped environments and save the count in the state', () => {
expect(gl.environmentsList.EnvironmentsStore.state.stoppedCounter).toBe(1);
});
it('should count available environments and save the count in the state', () => {
expect(gl.environmentsList.EnvironmentsStore.state.availableCounter).toBe(2);
});
it('should store environments with same environment_type as sibilings', () => {
expect(gl.environmentsList.EnvironmentsStore.state.environments.length).toBe(2);
const parentFolder = gl.environmentsList.EnvironmentsStore.state.environments.filter((env) => {
return env.children && env.children.length > 0;
});
expect(parentFolder[0].children.length).toBe(2);
expect(parentFolder[0].children[0].environment_type).toBe('review');
expect(parentFolder[0].children[1].environment_type).toBe('review');
expect(parentFolder[0].children[0].name).toBe('review/test-environment')
expect(parentFolder[0].children[1].name).toBe('review/test-environment-1');
});
it('should sort the environments alphabetically', () => {
const { environments } = gl.environmentsList.EnvironmentsStore.state;
expect(environments[0].name).toBe('production');
expect(environments[1].children[0].name).toBe('review/test-environment');
expect(environments[1].children[1].name).toBe('review/test-environment-1');
});
});
});
})();

View file

@ -3,93 +3,24 @@ const environmentsList = [
"id": 15,
"project_id": 11,
"name": "production",
"created_at": "2016-10-18T10:47:46.840Z",
"updated_at": "2016-10-19T15:49:24.378Z",
"external_url": "https://test.com",
"environment_type": null,
"state": "available",
"last_deployment": {
"id": 57,
"iid": 5,
"project_id": 11,
"environment_id": 15,
"ref": "master",
"tag": false,
"sha": "edf8704ba6cea79be4634b82927e9ff534068428",
"user_id": 1,
"deployable_id": 1170,
"deployable_type": "CommitStatus",
"on_stop": null,
"short_sha": "edf8704b",
"commit_title": "Update .gitlab-ci.yml",
"commit": {
"id": "edf8704ba6cea79be4634b82927e9ff534068428",
"message": "Update .gitlab-ci.yml",
"parent_ids": ["f215999006bd3d5c89b9b1e8c0873c9aca0f913a"],
"authored_date": "2016-10-19T16:49:09.000+01:00",
"author_name": "Administrator",
"author_email": "admin@example.com",
"committed_date": "2016-10-19T16:49:09.000+01:00",
"committer_name": "Administrator",
"committer_email": "admin@example.com"
},
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon"
},
"deployable": {
"id": 1170,
"name": "deploy",
"tag": false,
"ref": "master"
}
},
"project": {
"id": 11,
"name": "review-apps",
"path": "review-apps",
"namespace_id": 1,
"namespace": {
"id": 1,
"name": "root"
}
}
},{
"id": 18,
"project_id": 11,
"name": "review/test-environment",
"created_at": "2016-10-19T14:59:59.303Z",
"updated_at": "2016-10-19T14:59:59.303Z",
"external_url": "http://test1.com",
"environment_type": "review",
"state": "available",
"project": {
"id": 11,
"name": "review-apps",
"namespace": {
"id": 1,
"name": "root"
}
}
"state": "available"
},
{
"id": 18,
"project_id": 11,
"name": "review/test-environment",
"external_url": "http://test1.com",
"environment_type": "review",
"state": "available"
},
{
"id": 19,
"project_id": 11,
"name": "review/test-environment-1",
"created_at": "2016-10-19T14:59:59.303Z",
"updated_at": "2016-10-19T14:59:59.303Z",
"external_url": "http://test-1.com",
"environment_type": "review",
"state": "stopped",
"project": {
"id": 11,
"name": "review-apps",
"namespace": {
"id": 1,
"name": "root"
}
}
"state": "stopped"
}
];