test('it renders all the details', function(assert) {
  assert.expect(8);

  let body = 'Test body';
  let user = {
    id: 1,
    photoThumbUrl: 'http://lorempixel.com/25/25/',
    username: '******'
  };

  set(this, 'author', user);
  set(this, 'body', body);
  set(this, 'sentAt', moment().subtract(2, 'days'));
  stubService(this, 'current-user', { user: { id: 2 } });

  renderPage();

  assert.equal(page.body.text, body, 'The body renders in the chat bubble');
  assert.equal(page.sentAt.text, '2 days ago', 'The sent at timestamp renders');
  assert.notOk(page.sentByCurrentUser, 'Does not have the current user styles');
  assert.equal(page.photo.url, user.photoThumbUrl, 'The user photo renders');
  assertTooltipNotRendered(assert);

  page.photoContainer.mouseenter();

  assertTooltipRendered(assert);
  assertTooltipVisible(assert);
  assertTooltipContent(assert, { contentString: user.username });
});
test('the tooltip renders lazily, triggered by mouseEnter', function(assert) {
  assert.expect(5);

  renderPage();
  assertTooltipNotRendered(assert);

  page.mouseenter();

  assertTooltipRendered(assert);
  assertTooltipVisible(assert);

  page.mouseleave();

  assertTooltipRendered(assert);
  assertTooltipNotVisible(assert);
});
test('the tooltip renders lazily, triggered by mouseEnter', function(assert) {
  assert.expect(6);

  let mockUser = {

    photoThumbUrl: 'test.png',
    username: '******'
  };

  set(this, 'selectedOption', mockUser);
  renderPage();
  assertTooltipNotRendered(assert);

  page.mouseenter();

  assertTooltipRendered(assert);
  assertTooltipVisible(assert);
  assert.equal(page.tooltip.text, `Assigned to ${mockUser.username}`, 'the tooltip renders the correct text.');

  page.mouseleave();

  assertTooltipRendered(assert);
  assertTooltipNotVisible(assert);
});