diff options
Diffstat (limited to 'spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js')
-rw-r--r-- | spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js b/spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js new file mode 100644 index 00000000000..1e0bc708c31 --- /dev/null +++ b/spec/frontend/pages/admin/abuse_reports/abuse_reports_spec.js @@ -0,0 +1,46 @@ +import $ from 'jquery'; +import '~/lib/utils/text_utility'; +import AbuseReports from '~/pages/admin/abuse_reports/abuse_reports'; + +describe('Abuse Reports', () => { + const FIXTURE = 'abuse_reports/abuse_reports_list.html'; + 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(() => { + loadFixtures(FIXTURE); + new AbuseReports(); // eslint-disable-line no-new + $messages = $('.abuse-reports .message'); + }); + + it('should truncate long messages', () => { + const $longMessage = findMessage('LONG MESSAGE'); + + expect($longMessage.data('originalMessage')).toEqual(jasmine.anything()); + assertMaxLength($longMessage); + }); + + it('should not truncate short messages', () => { + const $shortMessage = findMessage('SHORT MESSAGE'); + + expect($shortMessage.data('originalMessage')).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('originalMessage').length).toEqual($longMessage.text().length); + $longMessage.click(); + assertMaxLength($longMessage); + }); +}); |