UNPKG

1.32 kBJavaScriptView Raw
1'use strict';
2
3const test = require('tape');
4const haikuist = require('./');
5
6test('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
14test('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
21test('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
32test('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});