Skip to content
This repository was archived by the owner on Dec 19, 2025. It is now read-only.

Commit ed1c440

Browse files
committed
Add tests for the scheme mapper
1 parent 127afd9 commit ed1c440

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

test/test-scheme-mapper.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
// require modules
2+
const test = require('ava');
3+
const schemeMapper = require('../lib/scheme-mapper');
4+
5+
// define some test objects
6+
const validReleaseObject = {
7+
name: 'axelrindle/github-version-checker',
8+
tag_name: 'v2.0.0',
9+
prerelease: false,
10+
published_at: '1. May 2018',
11+
html_url: 'https://github.com/axelrindle/github-version-checker/releases/tag/v2.0.0'
12+
};
13+
const validReleaseObject2 = {
14+
name: 'axelrindle/github-version-checker',
15+
tag_name: 'v2.0.0',
16+
prerelease: false,
17+
published_at: '1. May 2018',
18+
html_url: 'https://github.com/axelrindle/github-version-checker/releases/tag/v2.0.0',
19+
lorem: 'ipsum',
20+
dolor: 'sit',
21+
amet: 'test'
22+
};
23+
24+
test('scheme-mapper#release maps correctly', t => {
25+
const mapped = schemeMapper.release(validReleaseObject);
26+
t.deepEqual(mapped, {
27+
name: 'axelrindle/github-version-checker',
28+
tag: {
29+
name: 'v2.0.0'
30+
},
31+
isPrerelease: false,
32+
publishedAt: '1. May 2018',
33+
url: 'https://github.com/axelrindle/github-version-checker/releases/tag/v2.0.0'
34+
});
35+
36+
37+
const mapped2 = schemeMapper.release(validReleaseObject2);
38+
t.deepEqual(mapped2, {
39+
name: 'axelrindle/github-version-checker',
40+
tag: {
41+
name: 'v2.0.0'
42+
},
43+
isPrerelease: false,
44+
publishedAt: '1. May 2018',
45+
url: 'https://github.com/axelrindle/github-version-checker/releases/tag/v2.0.0'
46+
});
47+
});
48+
49+
test('scheme-mapper#release fails with invalid object', t => {
50+
const error = t.throws(() => {
51+
return schemeMapper.release(null);
52+
});
53+
t.is(error.message, 'Cannot read property \'name\' of null');
54+
55+
const error2 = t.throws(() => {
56+
return schemeMapper.release(undefined);
57+
});
58+
t.is(error2.message, 'Cannot read property \'name\' of undefined');
59+
});
60+
61+
test('scheme-mapper#tag maps correctly', t => {
62+
const mapped = schemeMapper.tag(validReleaseObject);
63+
t.deepEqual(mapped, {
64+
name: 'axelrindle/github-version-checker'
65+
});
66+
67+
const mapped2 = schemeMapper.tag(validReleaseObject2);
68+
t.deepEqual(mapped2, {
69+
name: 'axelrindle/github-version-checker'
70+
});
71+
});
72+
73+
test('scheme-mapper#tag fails with invalid object', t => {
74+
const error = t.throws(() => {
75+
return schemeMapper.tag(null);
76+
});
77+
t.is(error.message, 'Cannot read property \'name\' of null');
78+
79+
const error2 = t.throws(() => {
80+
return schemeMapper.tag(undefined);
81+
});
82+
t.is(error2.message, 'Cannot read property \'name\' of undefined');
83+
});

0 commit comments

Comments
 (0)