@@ -22,8 +22,22 @@ describe('property-order Unit Tests', function() {
2222 const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
2323
2424 response . status . should . be . true ;
25- ( response . data . actualNode === null ) . should . be . true ;
26- ( response . data . desiredNode === null ) . should . be . true ;
25+ ( response . msg === null ) . should . be . true ;
26+ } ) ;
27+ } ) ;
28+
29+ context ( 'when the properties in the package.json file are in the desired order, but the defaults are used' , function ( ) {
30+ it ( 'true should be returned' , function ( ) {
31+ const packageJson = {
32+ name : 'awesome-module' ,
33+ version : '1.0.0' ,
34+ description : 'description'
35+ } ;
36+ const preferredOrder = [ ] ;
37+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
38+
39+ response . status . should . be . true ;
40+ ( response . msg === null ) . should . be . true ;
2741 } ) ;
2842 } ) ;
2943
@@ -40,9 +54,8 @@ describe('property-order Unit Tests', function() {
4054 ] ;
4155 const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
4256
43- response . status . should . be . false ;
44- ( response . data . actualNode === null ) . should . be . true ;
45- response . data . desiredNode . should . equal ( 'description' ) ;
57+ response . status . should . be . true ;
58+ ( response . msg === null ) . should . be . true ;
4659 } ) ;
4760 } ) ;
4861
@@ -61,8 +74,158 @@ describe('property-order Unit Tests', function() {
6174 const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
6275
6376 response . status . should . be . false ;
64- response . data . actualNode . should . equal ( 'description' ) ;
65- response . data . desiredNode . should . equal ( 'version' ) ;
77+ response . msg . should . equal ( 'Please move version before description.' ) ;
78+ } ) ;
79+ } ) ;
80+
81+ context ( 'when the actual node list is in a different order than desired' , function ( ) {
82+ it ( 'false should be returned' , function ( ) {
83+ const packageJson = {
84+ version : '1.0.0' ,
85+ name : 'awesome-module' ,
86+ description : 'description'
87+ } ;
88+ const preferredOrder = [
89+ 'name' ,
90+ 'version' ,
91+ 'description'
92+ ] ;
93+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
94+
95+ response . status . should . be . false ;
96+ response . msg . should . equal ( 'Please move name before version.' ) ;
97+ } ) ;
98+ } ) ;
99+
100+ context ( 'when the actual node list is in a different order than desired' , function ( ) {
101+ it ( 'false should be returned' , function ( ) {
102+ const packageJson = {
103+ name : 'awesome-module' ,
104+ version : '1.0.0' ,
105+ description : 'description'
106+ } ;
107+ const preferredOrder = [
108+ 'name' ,
109+ 'version' ,
110+ 'homepage' ,
111+ 'description'
112+ ] ;
113+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
114+
115+ response . status . should . be . true ;
116+ ( response . msg === null ) . should . be . true ;
117+ } ) ;
118+ } ) ;
119+
120+ context ( 'when the actual node list is in a different order than desired' , function ( ) {
121+ it ( 'false should be returned' , function ( ) {
122+ const packageJson = {
123+ name : 'awesome-module' ,
124+ version : '1.0.0' ,
125+ description : 'description' ,
126+ homepage : 'https://github.com/tclindner/npm-package-json-lint'
127+ } ;
128+ const preferredOrder = [
129+ 'name' ,
130+ 'version' ,
131+ 'description' ,
132+ 'keywords' ,
133+ 'homepage'
134+ ] ;
135+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
136+
137+ response . status . should . be . true ;
138+ ( response . msg === null ) . should . be . true ;
139+ } ) ;
140+ } ) ;
141+
142+ context ( 'when the actual node list is in correct order, but has extra values in preferred order' , function ( ) {
143+ it ( 'true should be returned' , function ( ) {
144+ const packageJson = {
145+ name : 'awesome-module' ,
146+ version : '1.0.0' ,
147+ description : 'description' ,
148+ homepage : 'https://github.com/tclindner/npm-package-json-lint'
149+ } ;
150+ const preferredOrder = [
151+ 'name' ,
152+ 'version' ,
153+ 'description' ,
154+ 'scripts' ,
155+ 'bin' ,
156+ 'keywords' ,
157+ 'homepage'
158+ ] ;
159+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
160+
161+ response . status . should . be . true ;
162+ ( response . msg === null ) . should . be . true ;
163+ } ) ;
164+ } ) ;
165+
166+ context ( 'when the actual node list is not in correct order and also has extra values in preferred order' , function ( ) {
167+ it ( 'true should be returned' , function ( ) {
168+ const packageJson = {
169+ name : 'awesome-module' ,
170+ version : '1.0.0' ,
171+ description : 'description' ,
172+ homepage : 'https://github.com/tclindner/npm-package-json-lint' ,
173+ keywords : [ 'word' ]
174+ } ;
175+ const preferredOrder = [
176+ 'name' ,
177+ 'version' ,
178+ 'description' ,
179+ 'scripts' ,
180+ 'bin' ,
181+ 'keywords' ,
182+ 'homepage'
183+ ] ;
184+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
185+
186+ response . status . should . be . false ;
187+ response . msg . should . equal ( 'Please move keywords before homepage.' ) ;
188+ } ) ;
189+ } ) ;
190+
191+ context ( 'when node is not in the preferred node list' , function ( ) {
192+ it ( 'false should be returned' , function ( ) {
193+ const packageJson = {
194+ name : 'awesome-module' ,
195+ version : '1.0.0' ,
196+ description : 'description' ,
197+ homepage : 'https://github.com/tclindner/npm-package-json-lint'
198+ } ;
199+ const preferredOrder = [
200+ 'name' ,
201+ 'version' ,
202+ 'keywords' ,
203+ 'homepage'
204+ ] ;
205+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
206+
207+ response . status . should . be . false ;
208+ response . msg . should . equal ( 'description is not in the preferred property list.' ) ;
209+ } ) ;
210+ } ) ;
211+
212+ context ( 'when node is not in the preferred node list' , function ( ) {
213+ it ( 'false should be returned' , function ( ) {
214+ const packageJson = {
215+ name : 'awesome-module' ,
216+ version : '1.0.0' ,
217+ description : 'description' ,
218+ homepage : 'https://github.com/tclindner/npm-package-json-lint'
219+ } ;
220+ const preferredOrder = [
221+ 'version' ,
222+ 'keywords' ,
223+ 'homepage'
224+ ] ;
225+ const response = propertyOrder . isInPreferredOrder ( packageJson , preferredOrder ) ;
226+
227+ response . status . should . be . false ;
228+ response . msg . should . equal ( 'name is not in the preferred property list.' ) ;
66229 } ) ;
67230 } ) ;
68231 } ) ;
0 commit comments