summaryrefslogtreecommitdiff
path: root/spec/javascripts
diff options
context:
space:
mode:
authorSimon Knox <psimyn@gmail.com>2017-11-24 13:52:24 +1100
committerSimon Knox <psimyn@gmail.com>2017-11-29 00:44:01 +1100
commit0315803bc6da2185010f5ff6e60d44f6df059960 (patch)
tree621c3f8cdfe1dcf97b7840264855f50959355f75 /spec/javascripts
parent86b661d99acbdef8ea910a6e712758c3bd26771f (diff)
downloadgitlab-ce-0315803bc6da2185010f5ff6e60d44f6df059960.tar.gz
add basic component spec
Diffstat (limited to 'spec/javascripts')
-rw-r--r--spec/javascripts/diff_notes/components/diff_note_avatars_spec.js46
-rw-r--r--spec/javascripts/diff_notes/mock_data.js14
2 files changed, 60 insertions, 0 deletions
diff --git a/spec/javascripts/diff_notes/components/diff_note_avatars_spec.js b/spec/javascripts/diff_notes/components/diff_note_avatars_spec.js
new file mode 100644
index 00000000000..ba071e67b53
--- /dev/null
+++ b/spec/javascripts/diff_notes/components/diff_note_avatars_spec.js
@@ -0,0 +1,46 @@
+import Vue from 'vue';
+import DiffNoteAvatars from '~/diff_notes/components/diff_note_avatars.vue';
+import DiscussionModel from '~/diff_notes/models/discussion';
+import { createNote } from '../mock_data';
+
+describe('diff_note_avatars', () => {
+ let vm;
+ let notes;
+ let discussion;
+
+ beforeEach(() => {
+ notes = jasmine.createSpyObj('notes', ['onAddDiffNote']);
+ const Component = Vue.extend(DiffNoteAvatars);
+
+ const discussionId = '1234abcd';
+ discussion = new DiscussionModel(discussionId);
+ discussion.createNote(createNote());
+
+ window.CommentsStore.state = {
+ [discussionId]: discussion,
+ };
+
+ vm = new Component({
+ propsData: {
+ discussionId: discussion.id,
+ },
+ }).$mount();
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ delete window.CommentsStore.state;
+ });
+
+ it('includes discussion ID in class name', () => {
+ expect(vm.$el.classList).toContain(`js-diff-avatars-${discussion.id}`);
+ });
+
+ describe('avatars', () => {
+ it('shown by default', () => {
+ expect(vm.showCollapseButton).toBe(false);
+ expect(vm.$el.querySelector('.diff-notes-collapse')).toBe(null);
+ expect(vm.$el.querySelector('.diff-comment-avatar')).toBeTruthy();
+ });
+ });
+});
diff --git a/spec/javascripts/diff_notes/mock_data.js b/spec/javascripts/diff_notes/mock_data.js
new file mode 100644
index 00000000000..c8cf46d3723
--- /dev/null
+++ b/spec/javascripts/diff_notes/mock_data.js
@@ -0,0 +1,14 @@
+/* eslint-disable import/prefer-default-export */
+
+export function createNote() {
+ return {
+ id: _.random(10000),
+ canResolve: true,
+ resolved: false,
+ resolved_by: null,
+ authorName: '',
+ authorAvatar: '',
+ noteTruncated: 'Lorem notesum...',
+ };
+}
+