1
1
var fs = require ( 'fs' ) ;
2
+ var sizeOf = require ( 'image-size' ) ;
2
3
3
4
var getMockList = require ( './assets/get_mock_list' ) ;
4
5
var getRequestOpts = require ( './assets/get_image_request_options' ) ;
@@ -19,7 +20,11 @@ var FORMATS = ['svg', 'pdf', 'eps'];
19
20
// non-exhaustive list of mocks to test
20
21
var DEFAULT_LIST = [ '0' , 'geo_first' , 'gl3d_z-range' , 'text_export' , 'layout_image' ] ;
21
22
22
- // minimum satisfactory file size
23
+ // return dimensions [in px]
24
+ var WIDTH = 700 ;
25
+ var HEIGHT = 500 ;
26
+
27
+ // minimum satisfactory file size [in bytes]
23
28
var MIN_SIZE = 100 ;
24
29
25
30
/**
@@ -72,18 +77,32 @@ function runInBatch(mockList) {
72
77
// The tests below determine whether the images are properly
73
78
// exported by (only) checking the file size of the generated images.
74
79
function testExport ( mockName , format , t ) {
75
- var requestOpts = getRequestOpts ( { mockName : mockName , format : format } ) ,
80
+ var specs = {
81
+ mockName : mockName ,
82
+ format : format ,
83
+ width : WIDTH ,
84
+ height : HEIGHT
85
+ } ;
86
+
87
+ var requestOpts = getRequestOpts ( specs ) ,
76
88
imagePaths = getImagePaths ( mockName , format ) ,
77
89
saveImageStream = fs . createWriteStream ( imagePaths . test ) ;
78
90
79
91
function checkExport ( err ) {
80
92
if ( err ) throw err ;
81
93
82
- fs . stat ( imagePaths . test , function ( err , stats ) {
83
- var didExport = stats . size > MIN_SIZE ;
94
+ var didExport ;
84
95
85
- t . ok ( didExport , mockName + ' should be properly exported as a ' + format ) ;
86
- } ) ;
96
+ if ( format === 'svg' ) {
97
+ var dims = sizeOf ( imagePaths . test ) ;
98
+ didExport = ( dims . width === WIDTH ) && ( dims . height === HEIGHT ) ;
99
+ }
100
+ else {
101
+ var stats = fs . statSync ( imagePaths . test ) ;
102
+ didExport = stats . size > MIN_SIZE ;
103
+ }
104
+
105
+ t . ok ( didExport , mockName + ' should be properly exported as a ' + format ) ;
87
106
}
88
107
89
108
request ( requestOpts )
0 commit comments