1 | 'use strict';
|
2 |
|
3 | const test = require('tape');
|
4 | const haikuist = require('./');
|
5 |
|
6 | test('fetch haikus', async t => {
|
7 | t.plan(2);
|
8 | const { items: posts } = await haikuist.fetchPosts({ order: 'asc' });
|
9 | const [post] = posts;
|
10 | t.ok(posts.length > 0, 'haikus are fetched');
|
11 | t.equals(post && post.title, 'Possessive', `first haiku: "${post.title} [url=${post.link}]"`);
|
12 | });
|
13 |
|
14 | test('fetch latest haiku', async t => {
|
15 | t.plan(1);
|
16 | const { items: posts } = await haikuist.fetchPosts();
|
17 | const latestPost = await haikuist.fetchLatest();
|
18 | t.equals(latestPost.id, posts[0].id, 'latest haiku fetched');
|
19 | });
|
20 |
|
21 | test('fetch random haiku', async t => {
|
22 | t.plan(4);
|
23 | const haiku1 = await haikuist.fetchRandom();
|
24 | const haiku2 = await haikuist.fetchRandom();
|
25 | const haiku3 = await haikuist.fetchRandom();
|
26 | t.ok(haiku1 && haiku1.id, `first haiku fetched: id=${haiku1.id}`);
|
27 | t.ok(haiku2 && haiku2.id, `second haiku fetched: id=${haiku2.id}`);
|
28 | t.ok(haiku3 && haiku3.id, `third haiku fetched: id=${haiku3.id}`);
|
29 | t.not(haiku1.id === haiku2.id === haiku3.id, 'haikus are different');
|
30 | });
|
31 |
|
32 | test('fetch about page', async t => {
|
33 | t.plan(2);
|
34 | const { title, content } = await haikuist.about();
|
35 | t.equals(title, 'About', 'about page fetched');
|
36 | t.ok(content && content.length > 256, `has content: length=${content.length}`);
|
37 | });
|