Commit b1ec3cb8 authored by Filipa Lacerda's avatar Filipa Lacerda

Adds tests for environment store.

parent dcafd476
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
//humanizes actions names if there are any actions //humanizes actions names if there are any actions
if (environment.last_deployment.manual_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 //transforms created date for deployment in a human readable format
...@@ -64,21 +64,19 @@ ...@@ -64,21 +64,19 @@
} }
if (environment.environment_type !== null) { 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; return element.children && element.name === environment.environment_type;
}); });
environment["vue-isChildren"] = true; environment["vue-isChildren"] = true;
if (occurs !== undefined) { if (occurs.length) {
acc[acc.indexOf(occurs)].children.push(environment); acc[acc.indexOf(occurs[0])].children.push(environment);
acc[acc.indexOf(occurs)].children.sort(this.sortByName) acc[acc.indexOf(occurs[0])].children.sort(this.sortByName)
} else { } else {
acc.push({ acc.push({
name: environment.environment_type, name: environment.environment_type,
children: [ children: [environment]
Object.assign(environment)
]
}); });
} }
} else { } else {
......
//= require vue //= require vue
//= require vue-resource //= require environments/stores/environmnets_store
//= require lib/utils/url_utility
//= require environments/services/environments_service
//= require environments/stores/environments_store
//= require ./mock_data //= require ./mock_data
//
(() => { (() => {
beforeEach(() => { beforeEach(() => {
gl.environmentsService = new EnvironmentsService('test/environments');
gl.environmentsList.EnvironmentsStore.create(); gl.environmentsList.EnvironmentsStore.create();
}); });
describe('Store', () => { 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.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');
});
});
}); });
})(); })();
...@@ -3,93 +3,24 @@ const environmentsList = [ ...@@ -3,93 +3,24 @@ const environmentsList = [
"id": 15, "id": 15,
"project_id": 11, "project_id": 11,
"name": "production", "name": "production",
"created_at": "2016-10-18T10:47:46.840Z",
"updated_at": "2016-10-19T15:49:24.378Z",
"external_url": "https://test.com", "external_url": "https://test.com",
"environment_type": null, "environment_type": null,
"state": "available", "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, "id": 18,
"project_id": 11, "project_id": 11,
"name": "review/test-environment", "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", "external_url": "http://test1.com",
"environment_type": "review", "environment_type": "review",
"state": "available", "state": "available"
"project": {
"id": 11,
"name": "review-apps",
"namespace": {
"id": 1,
"name": "root"
}
}
}, },
{ {
"id": 18, "id": 19,
"project_id": 11, "project_id": 11,
"name": "review/test-environment-1", "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", "external_url": "http://test-1.com",
"environment_type": "review", "environment_type": "review",
"state": "stopped", "state": "stopped"
"project": {
"id": 11,
"name": "review-apps",
"namespace": {
"id": 1,
"name": "root"
}
}
} }
]; ];
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment