From 879fa389c2592760def75177eefbd3193e1845c9 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Mon, 19 Apr 2021 21:04:59 +0200 Subject: Add tests for first batch of components - Glyph - Forum List - Error Block - Post --- src/components/post/post.svelte | 8 ++-- src/components/post/post.test.js | 85 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 src/components/post/post.test.js (limited to 'src/components/post') diff --git a/src/components/post/post.svelte b/src/components/post/post.svelte index 5d8ef1c..fd9e580 100644 --- a/src/components/post/post.svelte +++ b/src/components/post/post.svelte @@ -23,11 +23,9 @@ {timestampToISO(post.created_at)} - {#if post.topic} - - ({$_('post.topic_location')} {post.topic.title}.) - - {/if} + + ({$_('post.topic_location')} {post.topic.title}.) +
{ + + beforeEach(() => { + + internals.results = render(Post, { props: { + post: internals.basicPost + } }); + }); + + test('Should display the text of the post', () => { + + expect(internals.results.getByText('This is an example post qwerty')).toBeVisible(); + }); + + test('Should display date of the post', () => { + + expect(internals.results.getByText('2021-04-19T06:06:06.666Z')) + .toBeVisible(); + }); + + test('Date of post should be a permalink to the post', () => { + + expect(internals.results.getByText('2021-04-19T06:06:06.666Z').closest('a')) + .toHaveAttribute('href', '/p/e5a19d53-4c9a-4be8-afa5-00942ea3afa4'); + }); + + test('Should display the glyph of the post author', () => { + + const glyphicon = internals.results.getByRole('img'); + + expect(glyphicon) + .toBeVisible(); + expect(glyphicon) + .toHaveTextContent(/^. . . .$/); + }); + + test('Should display author handle', () => { + + expect(internals.results.getByText('very_cool_user')) + .toBeVisible(); + }); + + test('Author handle should have a permalink to topic', () => { + + expect(internals.results.getByText('very_cool_user').closest('a')) + .toHaveAttribute('href', '/a/very_cool_user'); + }); + + test('Should display parent topic title', () => { + + expect(internals.results.getByText('Parent topic, yes')) + .toBeVisible(); + }); + + test('Parent topic title should have a permalink to topic', () => { + + expect(internals.results.getByText('Parent topic, yes').closest('a')) + .toHaveAttribute('href', '/t/35d3c3eb-e486-42ef-994c-d8ab1f1e167a'); + }); +}); -- cgit