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