| import './index'; |
| import { $$ } from 'common-sk/modules/dom'; |
| import { setUpElementUnderTest } from '../../../infra-sk/modules/test_util'; |
| |
| describe('triage-history-sk', () => { |
| const newInstance = setUpElementUnderTest('triage-history-sk'); |
| |
| const originalNow = Date.now; |
| const originalDateToString = Date.prototype.toString; |
| |
| let triageHistorySk; |
| |
| beforeEach(() => { |
| Date.now = () => new Date('2020-03-05T05:06:07-04:00'); |
| // This makes the test deterministic w.r.t. the computer's timezone. |
| Date.prototype.toString = Date.prototype.toUTCString; |
| triageHistorySk = newInstance(); |
| }); |
| |
| afterEach(() => { |
| Date.now = originalNow; |
| Date.prototype.toString = originalDateToString; |
| }); |
| |
| it('renders nothing on an empty history', () => { |
| triageHistorySk.history = []; |
| expect(triageHistorySk.innerText).to.be.empty; |
| }); |
| |
| it('renders only the most recent history entry', () => { |
| triageHistorySk.history = [{ |
| user: 'helpfuluser@example.com', |
| ts: new Date('2020-03-04T05:06:07.000000000-04:00'), |
| }, { |
| user: 'thisshouldnotshowup@example.com', |
| ts: new Date('2020-01-01T05:06:07.000000000-04:00'), |
| }]; |
| expect(triageHistorySk.innerText).to.equal('1d ago by helpfuluser@'); |
| const msg = $$('.message', triageHistorySk); |
| expect(msg.getAttribute('title')).to.equal( |
| 'Last triaged on Wed, 04 Mar 2020 09:06:07 GMT by helpfuluser@example.com', |
| ); |
| }); |
| |
| it('renders the full user name if it is not an email', () => { |
| triageHistorySk.history = [{ |
| user: 'expectation_cleaner', |
| ts: new Date('2020-03-04T05:06:07.000000000-04:00'), |
| }]; |
| expect(triageHistorySk.innerText).to.equal('1d ago by expectation_cleaner'); |
| }); |
| |
| describe('"history" property setter/getter', () => { |
| it('converts date strings into real dates', () => { |
| triageHistorySk.history = [{ |
| user: 'helpfuluser@example.com', |
| ts: '2020-03-04T05:06:07.000000000-04:00', |
| }]; |
| |
| expect(triageHistorySk.history.length).to.equal(1); |
| expect(triageHistorySk.history[0].user).to.equal('helpfuluser@example.com'); |
| expect(triageHistorySk.history[0].ts.getTime()).to.equal( |
| Date.parse('2020-03-04T05:06:07.000000000-04:00'), |
| ); |
| }); |
| }); |
| }); |