decidim-comments 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/comments/bundle.js +15 -15
  3. data/app/assets/javascripts/decidim/comments/bundle.js.map +1 -1
  4. data/app/commands/decidim/comments/create_comment.rb +2 -1
  5. data/app/forms/decidim/comments/comment_form.rb +1 -0
  6. data/app/frontend/application/apollo_client.js +1 -1
  7. data/app/frontend/application/application.component.jsx +1 -1
  8. data/app/frontend/comments/add_comment_form.component.jsx +76 -20
  9. data/app/frontend/comments/add_comment_form.component.test.jsx +77 -22
  10. data/app/frontend/comments/add_comment_form.fragment.graphql +6 -0
  11. data/app/frontend/comments/add_comment_form.mutation.graphql +2 -2
  12. data/app/frontend/comments/comment.component.jsx +15 -15
  13. data/app/frontend/comments/comment.component.test.jsx +42 -41
  14. data/app/frontend/comments/comment_order_selector.component.jsx +1 -1
  15. data/app/frontend/comments/comment_thread.component.jsx +7 -7
  16. data/app/frontend/comments/comment_thread.component.test.jsx +21 -19
  17. data/app/frontend/comments/comments.component.jsx +21 -17
  18. data/app/frontend/comments/comments.component.test.jsx +47 -32
  19. data/app/frontend/comments/comments.query.graphql +6 -3
  20. data/app/frontend/comments/down_vote_button.component.jsx +21 -10
  21. data/app/frontend/comments/up_vote_button.component.jsx +23 -12
  22. data/app/frontend/comments/vote_button.component.jsx +15 -7
  23. data/app/frontend/comments/vote_button_component.test.jsx +7 -2
  24. data/app/frontend/entry.js +1 -8
  25. data/app/frontend/support/generate_user_data.js +13 -0
  26. data/app/frontend/support/generate_user_group_data.js +14 -0
  27. data/app/helpers/decidim/comments/comments_helper.rb +10 -15
  28. data/app/models/decidim/comments/comment.rb +5 -7
  29. data/app/types/decidim/comments/comment_type.rb +5 -1
  30. data/config/locales/ca.yml +5 -1
  31. data/config/locales/en.yml +4 -1
  32. data/config/locales/es.yml +5 -1
  33. data/db/migrate/20170123102043_add_user_group_id_to_comments.rb +5 -0
  34. data/lib/decidim/comments/engine.rb +0 -1
  35. data/lib/decidim/comments/mutation_extensions.rb +2 -1
  36. metadata +10 -28
  37. data/app/frontend/support/generate_current_user_data.js +0 -13
  38. data/app/types/decidim/comments/author_type.rb +0 -15
@@ -0,0 +1,6 @@
1
+ fragment AddCommentForm on Session {
2
+ verifiedUserGroups {
3
+ id
4
+ name
5
+ }
6
+ }
@@ -1,5 +1,5 @@
1
- mutation addComment($commentableId: String!, $commentableType: String!, $body: String!, $alignment: Int) {
2
- addComment(commentableId: $commentableId, commentableType: $commentableType, body: $body, alignment: $alignment) {
1
+ mutation addComment($commentableId: String!, $commentableType: String!, $body: String!, $alignment: Int, $userGroupId: ID) {
2
+ addComment(commentableId: $commentableId, commentableType: $commentableType, body: $body, alignment: $alignment, userGroupId: $userGroupId) {
3
3
  ...CommentThread
4
4
  }
5
5
  }
@@ -68,12 +68,12 @@ class Comment extends Component {
68
68
  * @returns {Void|DOMElement} - Render the reply button or not if user can reply
69
69
  */
70
70
  _renderReplyButton() {
71
- const { comment: { canHaveReplies }, currentUser } = this.props;
71
+ const { comment: { canHaveReplies }, session } = this.props;
72
72
  const { showReplyForm } = this.state;
73
73
 
74
- if (currentUser && canHaveReplies) {
74
+ if (session && canHaveReplies) {
75
75
  return (
76
- <button
76
+ <button
77
77
  className="comment__reply muted-link"
78
78
  aria-controls="comment1-reply"
79
79
  onClick={() => this.setState({ showReplyForm: !showReplyForm })}
@@ -92,10 +92,10 @@ class Comment extends Component {
92
92
  * @returns {Void|DOMElement} - Render the reply button or not if user can reply
93
93
  */
94
94
  _renderAdditionalReplyButton() {
95
- const { comment: { canHaveReplies, hasReplies }, currentUser, isRootComment } = this.props;
95
+ const { comment: { canHaveReplies, hasReplies }, session, isRootComment } = this.props;
96
96
  const { showReplyForm } = this.state;
97
-
98
- if (currentUser && canHaveReplies) {
97
+
98
+ if (session && canHaveReplies) {
99
99
  if (hasReplies && isRootComment) {
100
100
 
101
101
  return (
@@ -140,9 +140,9 @@ class Comment extends Component {
140
140
  * @returns {Void|DomElement} - A wrapper element with comment replies inside
141
141
  */
142
142
  _renderReplies() {
143
- const { comment: { id, replies }, currentUser, votable, articleClassName } = this.props;
143
+ const { comment: { id, replies }, session, votable, articleClassName } = this.props;
144
144
  let replyArticleClassName = 'comment comment--nested';
145
-
145
+
146
146
  if (articleClassName === 'comment comment--nested') {
147
147
  replyArticleClassName = `${replyArticleClassName} comment--nested--alt`;
148
148
  }
@@ -155,7 +155,7 @@ class Comment extends Component {
155
155
  <Comment
156
156
  key={`comment_${id}_reply_${reply.id}`}
157
157
  comment={reply}
158
- currentUser={currentUser}
158
+ session={session}
159
159
  votable={votable}
160
160
  articleClassName={replyArticleClassName}
161
161
  />
@@ -164,7 +164,7 @@ class Comment extends Component {
164
164
  </div>
165
165
  );
166
166
  }
167
-
167
+
168
168
  return null;
169
169
  }
170
170
 
@@ -174,7 +174,7 @@ class Comment extends Component {
174
174
  * @returns {Void|ReactElement} - Render the AddCommentForm component or not
175
175
  */
176
176
  _renderReplyForm() {
177
- const { currentUser, comment } = this.props;
177
+ const { session, comment } = this.props;
178
178
  const { showReplyForm } = this.state;
179
179
 
180
180
  if (showReplyForm) {
@@ -182,7 +182,7 @@ class Comment extends Component {
182
182
  <AddCommentForm
183
183
  commentableId={comment.id}
184
184
  commentableType="Decidim::Comments::Comment"
185
- currentUser={currentUser}
185
+ session={session}
186
186
  showTitle={false}
187
187
  submitButtonClassName="button small hollow"
188
188
  onCommentAdded={() => this.setState({ showReplyForm: false })}
@@ -207,7 +207,7 @@ class Comment extends Component {
207
207
  });
208
208
 
209
209
  let label = '';
210
-
210
+
211
211
  if (alignment === 1) {
212
212
  label = I18n.t('components.comment.alignment.in_favor');
213
213
  } else {
@@ -251,8 +251,8 @@ Comment.propTypes = {
251
251
  propType(Comment.fragments.comment).isRequired,
252
252
  propType(Comment.fragments.commentData).isRequired
253
253
  ]).isRequired,
254
- currentUser: PropTypes.shape({
255
- name: PropTypes.string.isRequired
254
+ session: PropTypes.shape({
255
+ user: PropTypes.any.isRequired
256
256
  }),
257
257
  articleClassName: PropTypes.string.isRequired,
258
258
  isRootComment: PropTypes.bool,
@@ -1,25 +1,25 @@
1
1
  /* eslint-disable no-unused-expressions */
2
- import { shallow, mount } from 'enzyme';
3
- import { filter } from 'graphql-anywhere';
4
- import gql from 'graphql-tag';
2
+ import { shallow, mount } from 'enzyme';
3
+ import { filter } from 'graphql-anywhere';
4
+ import gql from 'graphql-tag';
5
5
 
6
- import Comment from './comment.component';
7
- import AddCommentForm from './add_comment_form.component';
8
- import UpVoteButton from './up_vote_button.component';
9
- import DownVoteButton from './down_vote_button.component';
6
+ import Comment from './comment.component';
7
+ import AddCommentForm from './add_comment_form.component';
8
+ import UpVoteButton from './up_vote_button.component';
9
+ import DownVoteButton from './down_vote_button.component';
10
10
 
11
- import commentFragment from './comment.fragment.graphql';
12
- import commentDataFragment from './comment_data.fragment.graphql';
13
- import upVoteFragment from './up_vote.fragment.graphql';
14
- import downVoteFragment from './down_vote.fragment.graphql';
11
+ import commentFragment from './comment.fragment.graphql';
12
+ import commentDataFragment from './comment_data.fragment.graphql';
13
+ import upVoteFragment from './up_vote.fragment.graphql';
14
+ import downVoteFragment from './down_vote.fragment.graphql';
15
15
 
16
- import stubComponent from '../support/stub_component';
17
- import generateCommentsData from '../support/generate_comments_data';
18
- import generateCurrentUserData from '../support/generate_current_user_data';
16
+ import stubComponent from '../support/stub_component';
17
+ import generateCommentsData from '../support/generate_comments_data';
18
+ import generateUserData from '../support/generate_user_data';
19
19
 
20
20
  describe("<Comment />", () => {
21
21
  let comment = {};
22
- let currentUser = null;
22
+ let session = null;
23
23
 
24
24
  stubComponent(AddCommentForm);
25
25
  stubComponent(UpVoteButton);
@@ -28,8 +28,7 @@ describe("<Comment />", () => {
28
28
  beforeEach(() => {
29
29
  let commentsData = generateCommentsData(1);
30
30
  commentsData[0].replies = generateCommentsData(3);
31
- const currentUserData = generateCurrentUserData();
32
-
31
+
33
32
  const fragment = gql`
34
33
  ${commentFragment}
35
34
  ${commentDataFragment}
@@ -38,44 +37,46 @@ describe("<Comment />", () => {
38
37
  `;
39
38
 
40
39
  comment = filter(fragment, commentsData[0]);
41
- currentUser = currentUserData;
40
+ session = {
41
+ user: generateUserData()
42
+ }
42
43
  });
43
44
 
44
45
  it("should render an article with class comment", () => {
45
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
46
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
46
47
  expect(wrapper.find('article.comment')).to.present();
47
48
  });
48
49
 
49
50
  it("should render a time tag with comment's created at", () => {
50
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
51
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
51
52
  expect(wrapper.find('time')).to.have.text(comment.created_at);
52
53
  });
53
54
 
54
55
  it("should render author's name in a link with class author__name", () => {
55
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
56
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
56
57
  expect(wrapper.find('a.author__name')).to.have.text(comment.author.name);
57
58
  });
58
59
 
59
60
  it("should render author's avatar as a image tag", () => {
60
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
61
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
61
62
  expect(wrapper.find('a.author__avatar img')).to.have.attr('src').equal(comment.author.avatarUrl);
62
63
  });
63
64
 
64
65
  it("should render comment's body on a div with class comment__content", () => {
65
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
66
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
66
67
  expect(wrapper.find('div.comment__content')).to.have.text(comment.body);
67
68
  });
68
69
 
69
70
  it("should initialize with a state property showReplyForm as false", () => {
70
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
71
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
71
72
  expect(wrapper).to.have.state('showReplyForm', false);
72
73
  });
73
74
 
74
75
  it("should render a AddCommentForm component with the correct props when clicking the reply button", () => {
75
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
76
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
76
77
  expect(wrapper.find(AddCommentForm)).not.to.be.present();
77
78
  wrapper.find('button.comment__reply').simulate('click');
78
- expect(wrapper.find(AddCommentForm)).to.have.prop('currentUser').deep.equal(currentUser);
79
+ expect(wrapper.find(AddCommentForm)).to.have.prop('session').deep.equal(session);
79
80
  expect(wrapper.find(AddCommentForm)).to.have.prop('commentableId').equal(comment.id);
80
81
  expect(wrapper.find(AddCommentForm)).to.have.prop('commentableType').equal("Decidim::Comments::Comment");
81
82
  expect(wrapper.find(AddCommentForm)).to.have.prop('showTitle').equal(false);
@@ -84,89 +85,89 @@ describe("<Comment />", () => {
84
85
 
85
86
  it("should not render the reply button if the comment cannot have replies", () => {
86
87
  comment.canHaveReplies = false;
87
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
88
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
88
89
  expect(wrapper.find('button.comment__reply')).not.to.be.present();
89
90
  });
90
91
 
91
92
  it("should not render the additional reply button if the parent comment has no replies and isRootcomment", () => {
92
93
  comment.canHaveReplies = true;
93
94
  comment.hasReplies = false;
94
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} isRootComment />);
95
+ const wrapper = shallow(<Comment comment={comment} session={session} isRootComment />);
95
96
  expect(wrapper.find('div.comment__additionalreply')).not.to.be.present();
96
97
  });
97
98
 
98
99
  it("should not render the additional reply button if the parent comment has replies and not isRootcomment", () => {
99
100
  comment.canHaveReplies = true;
100
101
  comment.hasReplies = true;
101
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
102
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
102
103
  expect(wrapper.find('div.comment__additionalreply')).not.to.be.present();
103
104
  });
104
105
 
105
106
  it("should render the additional reply button if the parent comment has replies and isRootcomment", () => {
106
107
  comment.canHaveReplies = true;
107
108
  comment.hasReplies = true;
108
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} isRootComment />);
109
+ const wrapper = shallow(<Comment comment={comment} session={session} isRootComment />);
109
110
  expect(wrapper.find('div.comment__additionalreply')).to.be.present();
110
111
  });
111
112
 
112
113
  it("should render comment replies a separate Comment components", () => {
113
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} votable />);
114
+ const wrapper = shallow(<Comment comment={comment} session={session} votable />);
114
115
  wrapper.find(Comment).forEach((node, idx) => {
115
116
  expect(node).to.have.prop("comment").deep.equal(comment.replies[idx]);
116
- expect(node).to.have.prop("currentUser").deep.equal(currentUser);
117
+ expect(node).to.have.prop("session").deep.equal(session);
117
118
  expect(node).to.have.prop("articleClassName").equal("comment comment--nested")
118
119
  expect(node).to.have.prop("votable").equal(true);
119
120
  });
120
121
  });
121
122
 
122
123
  it("should render comment replies with articleClassName as 'comment comment--nested comment--nested--alt' when articleClassName is 'comment comment--nested'", () => {
123
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} articleClassName="comment comment--nested" />);
124
+ const wrapper = shallow(<Comment comment={comment} session={session} articleClassName="comment comment--nested" />);
124
125
  wrapper.find(Comment).forEach((node) => {
125
126
  expect(node).to.have.prop("articleClassName").equal("comment comment--nested comment--nested--alt")
126
127
  });
127
128
  });
128
129
 
129
130
  it("should have a default prop articleClassName with value 'comment'", () => {
130
- const wrapper = mount(<Comment comment={comment} currentUser={currentUser} />);
131
+ const wrapper = mount(<Comment comment={comment} session={session} />);
131
132
  expect(wrapper).to.have.prop("articleClassName").equal("comment");
132
133
  });
133
134
 
134
135
  it("should have a default prop isRootComment with value false", () => {
135
- const wrapper = mount(<Comment comment={comment} currentUser={currentUser} />);
136
+ const wrapper = mount(<Comment comment={comment} session={session} />);
136
137
  expect(wrapper).to.have.prop("isRootComment").equal(false);
137
138
  });
138
139
 
139
140
  describe("when user is not logged in", () => {
140
141
  beforeEach(() => {
141
- currentUser = null;
142
+ session = null;
142
143
  });
143
144
 
144
145
  it("should not render reply button", () => {
145
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
146
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
146
147
  expect(wrapper.find('button.comment__reply')).not.to.be.present();
147
148
  });
148
149
  });
149
150
 
150
151
  it("should render a 'in favor' badge if comment's alignment is 1", () => {
151
152
  comment.alignment = 1;
152
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
153
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
153
154
  expect(wrapper.find('span.success.label')).to.have.text('In favor');
154
155
  });
155
156
 
156
157
  it("should render a 'against' badge if comment's alignment is -1", () => {
157
158
  comment.alignment = -1;
158
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} />);
159
+ const wrapper = shallow(<Comment comment={comment} session={session} />);
159
160
  expect(wrapper.find('span.alert.label')).to.have.text('Against');
160
161
  });
161
162
 
162
163
  describe("when the comment is votable", () => {
163
164
  it("should render an UpVoteButton component", () => {
164
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} votable />);
165
+ const wrapper = shallow(<Comment comment={comment} session={session} votable />);
165
166
  expect(wrapper.find(UpVoteButton)).to.have.prop("comment").deep.equal(comment);
166
167
  })
167
168
 
168
169
  it("should render an DownVoteButton component", () => {
169
- const wrapper = shallow(<Comment comment={comment} currentUser={currentUser} votable />);
170
+ const wrapper = shallow(<Comment comment={comment} session={session} votable />);
170
171
  expect(wrapper.find(DownVoteButton)).to.have.prop("comment").deep.equal(comment);
171
172
  })
172
173
  });
@@ -28,7 +28,7 @@ class CommentOrderSelector extends Component {
28
28
  <span className="order-by__text">{ I18n.t("components.comment_order_selector.title") }</span>
29
29
  <ul className="dropdown menu" data-dropdown-menu>
30
30
  <li>
31
- <a>{ I18n.t(`components.comment_order_selector.${orderBy}`) }</a>
31
+ <a>{ I18n.t(`components.comment_order_selector.order.${orderBy}`) }</a>
32
32
  <ul className="menu">
33
33
  <li>
34
34
  <a href="" className="test" onClick={(event) => this._updateOrder(event, "best_rated")} >
@@ -15,15 +15,15 @@ import commentThreadFragment from './comment_thread.fragment.graphql'
15
15
  */
16
16
  class CommentThread extends Component {
17
17
  render() {
18
- const { comment, currentUser, votable } = this.props;
18
+ const { comment, session, votable } = this.props;
19
19
 
20
20
  return (
21
21
  <div>
22
22
  {this._renderTitle()}
23
23
  <div className="comment-thread">
24
- <Comment
25
- comment={filter(Comment.fragments.comment, comment)}
26
- currentUser={currentUser}
24
+ <Comment
25
+ comment={filter(Comment.fragments.comment, comment)}
26
+ session={session}
27
27
  votable={votable}
28
28
  isRootComment
29
29
  />
@@ -39,7 +39,7 @@ class CommentThread extends Component {
39
39
  */
40
40
  _renderTitle() {
41
41
  const { comment: { author, hasReplies } } = this.props;
42
-
42
+
43
43
  if (hasReplies) {
44
44
  return (
45
45
  <h6 className="comment-thread__title">
@@ -60,8 +60,8 @@ CommentThread.fragments = {
60
60
  };
61
61
 
62
62
  CommentThread.propTypes = {
63
- currentUser: PropTypes.shape({
64
- name: PropTypes.string.isRequired
63
+ session: PropTypes.shape({
64
+ user: PropTypes.any.isRequired
65
65
  }),
66
66
  comment: propType(CommentThread.fragments.comment).isRequired,
67
67
  votable: PropTypes.bool
@@ -2,18 +2,18 @@ import { shallow } from 'enzyme';
2
2
  import { filter } from 'graphql-anywhere';
3
3
  import gql from 'graphql-tag';
4
4
 
5
- import CommentThread from './comment_thread.component';
6
- import Comment from './comment.component';
5
+ import CommentThread from './comment_thread.component';
6
+ import Comment from './comment.component';
7
7
 
8
- import commentThreadFragment from './comment_thread.fragment.graphql'
8
+ import commentThreadFragment from './comment_thread.fragment.graphql'
9
9
 
10
- import stubComponent from '../support/stub_component';
11
- import generateCommentsData from '../support/generate_comments_data';
12
- import generateCurrentUserData from '../support/generate_current_user_data';
10
+ import stubComponent from '../support/stub_component';
11
+ import generateCommentsData from '../support/generate_comments_data';
12
+ import generateCUserData from '../support/generate_user_data';
13
13
 
14
14
  describe('<CommentThread />', () => {
15
15
  let comment = {};
16
- let currentUser = null;
16
+ let session = null;
17
17
 
18
18
  const commentFragment = gql`
19
19
  fragment Comment on Comment {
@@ -29,19 +29,21 @@ describe('<CommentThread />', () => {
29
29
 
30
30
  beforeEach(() => {
31
31
  const commentsData = generateCommentsData(1);
32
-
32
+
33
33
  const fragment = gql`
34
34
  ${commentThreadFragment}
35
35
  ${commentFragment}
36
36
  `;
37
37
 
38
- currentUser = generateCurrentUserData();
38
+ session = {
39
+ user: generateCUserData()
40
+ };
39
41
  comment = filter(fragment, commentsData[0]);
40
42
  });
41
43
 
42
44
  describe("when comment doesn't have replies", () => {
43
45
  it("should not render a title with author name", () => {
44
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} />);
46
+ const wrapper = shallow(<CommentThread comment={comment} session={session} />);
45
47
  expect(wrapper.find('h6.comment-thread__title')).not.to.present();
46
48
  });
47
49
  });
@@ -52,30 +54,30 @@ describe('<CommentThread />', () => {
52
54
  });
53
55
 
54
56
  it("should render a h6 comment-thread__title with author name", () => {
55
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} />);
57
+ const wrapper = shallow(<CommentThread comment={comment} session={session} />);
56
58
  expect(wrapper.find('h6.comment-thread__title')).to.have.text(`Conversation with ${comment.author.name}`);
57
59
  });
58
60
  });
59
61
 
60
62
  describe("should render a Comment", () => {
61
- it("and pass the currentUser as a prop to it", () => {
62
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} />);
63
- expect(wrapper.find(Comment).first()).to.have.prop("currentUser").deep.equal(currentUser);
63
+ it("and pass the session as a prop to it", () => {
64
+ const wrapper = shallow(<CommentThread comment={comment} session={session} />);
65
+ expect(wrapper.find(Comment).first()).to.have.prop("session").deep.equal(session);
64
66
  });
65
67
 
66
68
  it("and pass filter comment data as a prop to it", () => {
67
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} />);
69
+ const wrapper = shallow(<CommentThread comment={comment} session={session} />);
68
70
  expect(wrapper.find(Comment).first()).to.have.prop("comment").deep.equal(filter(commentFragment, comment));
69
71
  });
70
72
 
71
73
  it("and pass the votable as a prop to it", () => {
72
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} votable />);
74
+ const wrapper = shallow(<CommentThread comment={comment} session={session} votable />);
73
75
  expect(wrapper.find(Comment).first()).to.have.prop("votable").equal(true);
74
76
  });
75
-
77
+
76
78
  it("and pass the isRootComment equal true", () => {
77
- const wrapper = shallow(<CommentThread comment={comment} currentUser={currentUser} votable isRootComment />);
79
+ const wrapper = shallow(<CommentThread comment={comment} session={session} votable isRootComment />);
78
80
  expect(wrapper.find(Comment).first()).to.have.prop("isRootComment").equal(true);
79
81
  });
80
- });
82
+ });
81
83
  });