1
1
'use strict' ;
2
+ const path = require ( 'path' ) ;
3
+ const fs = require ( 'fs' ) ;
4
+
2
5
const QUnit = require ( 'qunit' ) ;
3
6
4
7
const { test } = QUnit ;
@@ -38,6 +41,7 @@ QUnit.module('Docs coverage', function (hooks) {
38
41
const module = docs . modules [ moduleName ] ;
39
42
if ( isOwnModule ( module ) ) {
40
43
test ( `${ moduleName } is configured correctly` , function ( assert ) {
44
+ assert . ok ( docs . files [ module . file ] , `${ moduleName } has a file in ${ linkItem ( module ) } ` ) ;
41
45
assert . strictEqual ( module . tag , 'main' , `${ moduleName } is tagged as main in ${ linkItem ( module ) } ` ) ;
42
46
assert . true ( isNonEmptyString ( module . description ) , `${ moduleName } has a description in ${ linkItem ( module ) } ` ) ;
43
47
assert . false (
@@ -56,6 +60,7 @@ QUnit.module('Docs coverage', function (hooks) {
56
60
return ;
57
61
}
58
62
test ( `Class ${ className } is documented correctly at ${ linkItem ( def ) } ` , function ( assert ) {
63
+ assert . ok ( docs . files [ def . file ] , `${ className } has a file` ) ;
59
64
assert . true (
60
65
def . access === 'public' || def . access === 'private' ,
61
66
`${ def . name } must declare either as either @internal @private or @public`
@@ -150,6 +155,16 @@ QUnit.module('Docs coverage', function (hooks) {
150
155
) ;
151
156
} ) ;
152
157
} ) ;
158
+
159
+ QUnit . module ( 'files' , function ( hooks ) {
160
+ test ( `All files have meaningful paths` , function ( assert ) {
161
+ const root = path . join ( __dirname , '../../packages/-ember-data' ) ;
162
+ Object . keys ( docs . files ) . forEach ( ( fileName ) => {
163
+ const filePath = path . join ( root , fileName ) ;
164
+ assert . true ( fs . existsSync ( filePath ) , `${ fileName } is resolvable as ${ filePath } ` ) ;
165
+ } ) ;
166
+ } ) ;
167
+ } ) ;
153
168
} ) ;
154
169
155
170
function setDifference ( setA , setB ) {
0 commit comments