summaryrefslogtreecommitdiff
path: root/spec/javascripts/abuse_reports_spec.js
blob: 7f6b5873011110d4bc8187c05892f566b8f30f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import '~/lib/utils/text_utility';
import AbuseReports from '~/abuse_reports';

describe('Abuse Reports', () => {
  const FIXTURE = 'abuse_reports/abuse_reports_list.html.raw';
  const MAX_MESSAGE_LENGTH = 500;

  let $messages;

  const assertMaxLength = $message => expect($message.text().length).toEqual(MAX_MESSAGE_LENGTH);
  const findMessage = searchText => $messages.filter(
    (index, element) => element.innerText.indexOf(searchText) > -1,
  ).first();

  preloadFixtures(FIXTURE);

  beforeEach(function () {
    loadFixtures(FIXTURE);
    this.abuseReports = new AbuseReports();
    $messages = $('.abuse-reports .message');
  });

  it('should truncate long messages', () => {
    const $longMessage = findMessage('LONG MESSAGE');
    expect($longMessage.data('original-message')).toEqual(jasmine.anything());
    assertMaxLength($longMessage);
  });

  it('should not truncate short messages', () => {
    const $shortMessage = findMessage('SHORT MESSAGE');
    expect($shortMessage.data('original-message')).not.toEqual(jasmine.anything());
  });

  it('should allow clicking a truncated message to expand and collapse the full message', () => {
    const $longMessage = findMessage('LONG MESSAGE');
    $longMessage.click();
    expect($longMessage.data('original-message').length).toEqual($longMessage.text().length);
    $longMessage.click();
    assertMaxLength($longMessage);
  });
});