diff options
Diffstat (limited to 'spec/javascripts/diffs/components/app_spec.js')
-rw-r--r-- | spec/javascripts/diffs/components/app_spec.js | 86 |
1 files changed, 85 insertions, 1 deletions
diff --git a/spec/javascripts/diffs/components/app_spec.js b/spec/javascripts/diffs/components/app_spec.js index 7237274eb43..a3a714678af 100644 --- a/spec/javascripts/diffs/components/app_spec.js +++ b/spec/javascripts/diffs/components/app_spec.js @@ -1 +1,85 @@ -// TODO: https://gitlab.com/gitlab-org/gitlab-ce/issues/48034 +import Vue from 'vue'; +import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper'; +import { TEST_HOST } from 'spec/test_constants'; +import App from '~/diffs/components/app.vue'; +import createDiffsStore from '../create_diffs_store'; +import getDiffWithCommit from '../mock_data/diff_with_commit'; + +describe('diffs/components/app', () => { + const oldMrTabs = window.mrTabs; + const Component = Vue.extend(App); + + let vm; + + beforeEach(() => { + // setup globals (needed for component to mount :/) + window.mrTabs = jasmine.createSpyObj('mrTabs', ['resetViewContainer']); + + // setup component + const store = createDiffsStore(); + store.state.diffs.isLoading = false; + + vm = mountComponentWithStore(Component, { + store, + props: { + endpoint: `${TEST_HOST}/diff/endpoint`, + projectPath: 'namespace/project', + currentUser: {}, + }, + }); + }); + + afterEach(() => { + // reset globals + window.mrTabs = oldMrTabs; + + // reset component + vm.$destroy(); + }); + + it('does not show commit info', () => { + expect(vm.$el).not.toContainElement('.blob-commit-info'); + }); + + it('shows comments message, with commit', done => { + vm.$store.state.diffs.commit = getDiffWithCommit().commit; + + vm + .$nextTick() + .then(() => { + expect(vm.$el).toContainText('Only comments from the following commit are shown below'); + expect(vm.$el).toContainElement('.blob-commit-info'); + }) + .then(done) + .catch(done.fail); + }); + + it('shows comments message, with old mergeRequestDiff', done => { + vm.$store.state.diffs.mergeRequestDiff = { latest: false }; + vm.$store.state.diffs.targetBranch = 'master'; + + vm + .$nextTick() + .then(() => { + expect(vm.$el).toContainText( + "Not all comments are displayed because you're viewing an old version of the diff.", + ); + }) + .then(done) + .catch(done.fail); + }); + + it('shows comments message, with startVersion', done => { + vm.$store.state.diffs.startVersion = 'test'; + + vm + .$nextTick() + .then(() => { + expect(vm.$el).toContainText( + "Not all comments are displayed because you're comparing two versions of the diff.", + ); + }) + .then(done) + .catch(done.fail); + }); +}); |