summaryrefslogtreecommitdiff
path: root/spec/javascripts/ide/stores/actions_spec.js
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2018-03-21 10:05:08 +0000
committerPhil Hughes <me@iamphill.com>2018-03-22 10:33:19 +0000
commit51c64f3fc7180732621d60f939bfe6157165040f (patch)
treeeaa1154ec945cfc289de9d2fd3f54a906d74d43b /spec/javascripts/ide/stores/actions_spec.js
parent4718f22f5751f8d50bd7897ff4a967ccc5625c80 (diff)
downloadgitlab-ce-51c64f3fc7180732621d60f939bfe6157165040f.tar.gz
Added staged files state to IDE
Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/4541
Diffstat (limited to 'spec/javascripts/ide/stores/actions_spec.js')
-rw-r--r--spec/javascripts/ide/stores/actions_spec.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/spec/javascripts/ide/stores/actions_spec.js b/spec/javascripts/ide/stores/actions_spec.js
index cec572f4507..0cbf9f3735f 100644
--- a/spec/javascripts/ide/stores/actions_spec.js
+++ b/spec/javascripts/ide/stores/actions_spec.js
@@ -292,6 +292,84 @@ describe('Multi-file store actions', () => {
});
});
+ describe('stageAllChanges', () => {
+ it('adds all files from changedFiles to stagedFiles', done => {
+ const f = file();
+ store.state.changedFiles.push(f);
+ store.state.changedFiles.push(file('new'));
+
+ store
+ .dispatch('stageAllChanges')
+ .then(() => {
+ expect(store.state.stagedFiles.length).toBe(2);
+ expect(store.state.stagedFiles[0]).toEqual(f);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
+ it('sets all files from changedFiles as staged after adding to stagedFiles', done => {
+ store.state.changedFiles.push(file());
+ store.state.changedFiles.push(file('new'));
+
+ store
+ .dispatch('stageAllChanges')
+ .then(() => {
+ expect(store.state.changedFiles.length).toBe(2);
+ store.state.changedFiles.forEach(f => {
+ expect(f.staged).toBeTruthy();
+ });
+
+ done();
+ })
+ .catch(done.fail);
+ });
+ });
+
+ describe('unstageAllChanges', () => {
+ let f;
+
+ beforeEach(() => {
+ f = {
+ ...file(),
+ type: 'blob',
+ staged: true,
+ };
+
+ store.state.changedFiles.push({
+ ...f,
+ });
+ });
+
+ it('sets staged to false in changedFiles when unstaging', done => {
+ store.state.stagedFiles.push(f);
+
+ store
+ .dispatch('unstageAllChanges')
+ .then(() => {
+ expect(store.state.stagedFiles.length).toBe(0);
+ expect(store.state.changedFiles[0].staged).toBeFalsy();
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
+ it('removes all files from stagedFiles after unstaging', done => {
+ store.state.stagedFiles.push(file());
+
+ store
+ .dispatch('unstageAllChanges')
+ .then(() => {
+ expect(store.state.stagedFiles.length).toBe(0);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+ });
+
describe('updateViewer', () => {
it('updates viewer state', done => {
store