powerbi-visuals-tools 4.2.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Changelog.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  This page contains information about changes to the PowerBI Visual Tools (pbiviz).
4
4
 
5
+ ## 4.3.0
6
+ * Implemented new flag `--no-stats` to disable statistics files
7
+ * Fixed vulnerabilities
8
+
5
9
  ## 4.2.1
6
10
  * Replaced `base64-inline-loader` with webpack `asset/inline`
7
11
 
@@ -32,11 +32,9 @@ let ConsoleWriter = require('../lib/ConsoleWriter');
32
32
  let CommandHelpManager = require('../lib/CommandHelpManager');
33
33
  let options = process.argv;
34
34
 
35
- for (let i = 0; i < options.length; i++) {
36
- if (options[i] == '--help' || options[i] == '-h') {
37
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
38
- process.exit(0);
39
- }
35
+ if (options.some(option => option === '--help' || option === '-h')) {
36
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
37
+ process.exit(0);
40
38
  }
41
39
 
42
40
  program.parse(options);
package/bin/pbiviz-new.js CHANGED
@@ -38,11 +38,9 @@ program
38
38
  .option('-f, --force', 'force creation (overwrites folder if exists)')
39
39
  .option('-t, --template [template]', 'use a specific template (default, table, slicer, rvisual, rhtml)');
40
40
 
41
- for (let i = 0; i < options.length; i++) {
42
- if (options[i] == '--help' || options[i] == '-h') {
43
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
44
- process.exit(0);
45
- }
41
+ if (options.some(option => option === '--help' || option === '-h')) {
42
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
43
+ process.exit(0);
46
44
  }
47
45
 
48
46
  program.parse(options);
@@ -28,28 +28,28 @@
28
28
 
29
29
  const program = require('commander');
30
30
  const compareVersions = require("compare-versions");
31
+ const webpack = require("webpack");
32
+
31
33
  const config = require('../config.json');
32
34
  const VisualPackage = require('../lib/VisualPackage');
33
35
  const ConsoleWriter = require('../lib/ConsoleWriter');
34
36
  const WebPackWrap = require('../lib/WebPackWrap');
35
- const webpack = require("webpack");
36
37
  const CommandHelpManager = require('../lib/CommandHelpManager');
37
38
 
38
39
  let options = process.argv;
39
40
  const minAPIversion = config.constants.minAPIversion;
40
41
 
41
42
  program
42
- .option('--resources', "Produces a folder containing the pbiviz resource files (js, css, json)", false)
43
- .option('--no-pbiviz', "Doesn't produce a pbiviz file (must be used in conjunction with resources flag)", false)
44
- .option('--no-minify', "Doesn't minify the js in the package (useful for debugging)", true)
45
- .option('--no-plugin', "Doesn't include a plugin declaration to the package (must be used in conjunction with --no-pbiviz and --resources flags)", false)
43
+ .option('--resources', "Produces a folder containing the pbiviz resource files (js, css, json)")
44
+ .option('--no-pbiviz', "Doesn't produce a pbiviz file (must be used in conjunction with resources flag)")
45
+ .option('--no-minify', "Doesn't minify the js in the package (useful for debugging)")
46
+ .option('--no-plugin', "Doesn't include a plugin declaration to the package (must be used in conjunction with --no-pbiviz and --resources flags)")
47
+ .option('--no-stats', "Doesn't generate statistics files")
46
48
  .option('-c, --compression <compressionLevel>', "Enables compression of visual package", /^(0|1|2|3|4|5|6|7|8|9)$/i, "6");
47
49
 
48
- for (let i = 0; i < options.length; i++) {
49
- if (options[i] == '--help' || options[i] == '-h') {
50
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
51
- process.exit(0);
52
- }
50
+ if (options.some(option => option === '--help' || option === '-h')) {
51
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
52
+ process.exit(0);
53
53
  }
54
54
 
55
55
  program.parse(options);
@@ -75,7 +75,8 @@ VisualPackage.loadVisualPackage(cwd).then((visualPackage) => {
75
75
  generatePbiviz: program.pbiviz,
76
76
  minifyJS: program.minify,
77
77
  minify: program.minify,
78
- compression: program.compression
78
+ compression: program.compression,
79
+ disableStats: !program.stats
79
80
  }).then(({ webpackConfig }) => {
80
81
  let compiler = webpack(webpackConfig);
81
82
  compiler.run(function (err, stats) {
@@ -118,3 +119,4 @@ function displayCertificationRules() {
118
119
  ConsoleWriter.info("Full description of certification requirements you can find in documentation:");
119
120
  ConsoleWriter.info("https://docs.microsoft.com/en-us/power-bi/power-bi-custom-visuals-certified#certification-requirements");
120
121
  }
122
+
@@ -28,15 +28,16 @@
28
28
 
29
29
  const program = require('commander');
30
30
  const compareVersions = require("compare-versions");
31
+ const fs = require('fs-extra');
32
+ const path = require('path');
33
+ const webpack = require("webpack");
34
+
31
35
  const config = require('../config.json');
32
36
  const VisualPackage = require('../lib/VisualPackage');
33
37
  const WebpackDevServer = require("webpack-dev-server");
34
38
  const ConsoleWriter = require('../lib/ConsoleWriter');
35
39
  const WebPackWrap = require('../lib/WebPackWrap');
36
- const webpack = require("webpack");
37
40
  const CommandHelpManager = require('../lib/CommandHelpManager');
38
- const fs = require('fs-extra');
39
- const path = require('path');
40
41
 
41
42
  const options = process.argv;
42
43
  const minAPIversion = config.constants.minAPIversion;
@@ -44,13 +45,12 @@ const minAPIversion = config.constants.minAPIversion;
44
45
  program
45
46
  .option('-p, --port [port]', 'set the port listening on')
46
47
  .option('-m, --mute', 'mute error outputs')
47
- .option('-d, --drop', 'drop outputs into output folder');
48
+ .option('-d, --drop', 'drop outputs into output folder')
49
+ .option('--no-stats', "Doesn't generate statistics files");
48
50
 
49
- for (let i = 0; i < options.length; i++) {
50
- if (options[i] == '--help' || options[i] == '-h') {
51
- program.help(CommandHelpManager.createSubCommandHelpCallback(options));
52
- process.exit(0);
53
- }
51
+ if (options.some(option => option === '--help' || option === '-h')) {
52
+ program.help(CommandHelpManager.createSubCommandHelpCallback(options));
53
+ process.exit(0);
54
54
  }
55
55
 
56
56
  program.parse(options);
@@ -70,7 +70,8 @@ VisualPackage.loadVisualPackage(cwd).then((visualPackage) => {
70
70
  generatePbiviz: false,
71
71
  minifyJS: false,
72
72
  minify: false,
73
- devServerPort: program.port
73
+ devServerPort: program.port,
74
+ disableStats: !program.stats
74
75
  })
75
76
  .then(({ webpackConfig }) => {
76
77
  let compiler = webpack(webpackConfig);
@@ -1,28 +1,28 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6p5wIJwnOhyK4
3
- tQK0irUN/UvbWcwZf6dR5v7WZ7lAF6McmViDoapa9ryrUuGRoxtSBQKDaAR3d5cP
4
- zmeYD7MhUjbHWKFmsNdAyZK1A+mB8pfu4Y7bH8voaVnOLpqJAyxvN77tpSkl13D/
5
- CogKawZyf9ccOtPrfx1AvraA2LJM2vZejazOL0CvNklp5KAongzKU6VzT9xsSc6l
6
- OCLOAEIw7bIJ3+1OCG4lkHWHTpafM/8vEYrg6vhLMXDvIywEscoQu6vzzb0qhxLv
7
- qWoXu2PXFHIQwtkOcFDxPsh/lbWP+sRb5L10t+GNTWwh2XAYRUXjjR4h8fygq8Ym
8
- bHt+/1mXAgMBAAECggEAFjGUv3Fo3Jo72iuHsVDm2015ZhEE0ClaC0aEmZjGsaS9
9
- 28ot+KTR3TQGVfaqZIc42eVHmblWAqCBITuBHNcNDRK5+bUDp/Kx/X2aSJS5AJ8I
10
- SrqeIlbjB3TzXS00acMrVuQRey9Ot7WotWKar2ZvY1DpEm26Qf+gylCC4coiVTnl
11
- 4aJ5FJ18Mxy88UDz8GSQKSK0HZA3ayB0EIXrtRocoCK5+nDsBRLyziH6q/rmnVRN
12
- +iVkk1IQdpjPYp8F1FaXZC0k7YOiZtEhTzhWLo8M2ln7yOuPqnUBUXQYqE1Xpt58
13
- JS4lRv7LIxgBy88Y8NTdGKIWI78svlOUCgS3PxjldQKBgQDX6adnsHO7QeLibBMY
14
- mvdwD1m3k8ebMjioLg/fW1wiiz5W4kvvYX6ab/KsBZPuqimYqcpQs+QuHsh5qb5p
15
- IkGj7WpGyDl5eH5M94vO0/064CbLy41i0rIGE59+bX/WpuJYEC6Lu+4tFBdHhPLq
16
- xHTBsyu5jHL8Ea4ez+adprNmywKBgQDdT1JMC4fAm168B4ebHy+BU0APaAnKjcMN
17
- 9WRXpq9NYriI1Hcuj8gRu0Yk5xNSH56efFz30vU4kVKcUoEuEa6X4StIiM+2jElC
18
- Adn70gSEBHPL7Alv7NfodWbYhUw53v0nwsZLC9G7o5HN0t0RUAKV2Ns/slBBA6vB
19
- /olfgHpy5QKBgEWs/D3k3mQWjf4dfEgbcjAyc/Re9zIpEcmMG8krdV8cakClhHW6
20
- k52I9Nn4btW9CfFfEY/bjY4olu9UDMNmr6IT8pDm+k0tyixSUkareHOwdDSd+oFi
21
- ltqJKJYnBfMiJbbfefXT7reTXTPSPoXuYfNEO58EKPMZTYRZ+QT1D73jAoGBAKNf
22
- dyVkLabmC51LAbRl5S/XQSceanv5AtE/IgACsM6z3f5EumbJBazxTurXGtA5P2NH
23
- 82mPdi94OD/mOC7GJtlABC/br1rXXQ05SK45b9P1ZXZYnO7fLNQSNwYIASmHj+LW
24
- SoQECaQ3L999lmy9X+s210PCYrRb/WOMf+Tcd4hxAoGACBpMZ26IyQfYHMgv1R6C
25
- XKGVS6qe+f0OvjVd4opGaY5ouSnmgP24wBJxOXruUqx/XNtq0vBZ8KAGFC7qm8br
26
- kbm8QCMYJGKFXOzdM8qCGB3CG6HL8BU9UaVJqaOHnycNvEykywAHHkKptqLsCVqH
27
- wwThK11ZDqor0a95ZIyKf4k=
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6JtXKGOjxdUgJ
3
+ duRhfJ5+shTf4Wk5ILz+7FWShz16GXfCaPmpoFj6G9xJtownPqcFJau3RDlZ89hX
4
+ sYUSZt9gHl5X7cj/IiSWoYZK2G4uSQbHjtP2WGDXxp9SbqL5gQrDRPhzuit0fcR7
5
+ 5uYJqbY4FkP0L8psl2aZwVWagOKti5b0s0IC4vXUIZ5W9itayYd9tvjDdamOOITc
6
+ giloO8qaGdcPSbeeBp96RH2CdN5PDAUV7RNBP/hWN4uDSsr0a/NYauCu9sapRd0O
7
+ cUqPh8Br4iSlEhxfmNBtFYbSld6w6xiHIcqQNOa1wUurPPEg4t613RVY9og+EoBl
8
+ woeNwYNlAgMBAAECggEAKBbo/+cxc57QbsleEeimsZ5khHqlEJqOWVBIdZAOm1cU
9
+ xZeZ/P/9aY/Kd02LDYCes6sTOhrFRywOsYQXpojlHmwr4T/ig5+0xYPvyfqmb+1m
10
+ Ol/2Ih2SbaXm9ffBvX4e9ULLRxEW/rV/NTfa3sXf6mBRLiuEqrJIdGCAsQ+Ewd7p
11
+ S4IhIxTkfrPDSXYOUED8spt1gHJyccR7yt+iOUEbiv303VHqxiNbWHrsRi0oAopV
12
+ Ndikqr/aGMVL/HxVbyKzqglOFTqeWMnAhTp6ZhA/EbOAu6yb5rRigUBgOABB3lnw
13
+ QqDzaTDCgN+8Tkgm2a77d4dccpVxWfqG6HYxZLIZAQKBgQD4QFTvSGmbssAc6fIh
14
+ tr7FL5Vuyg1Bc5y9pkaE8sI18e0vVenm/tuGM6bEPv0YZznzYnvLb1Da7KYKQg7X
15
+ Qhh2Co8LudnU3CDnkcJKbvEjhET6HuKe5pQ9VDriWYV/pOqWmazbUnlUeEalTBso
16
+ bWwrX7FmG6TKh9uj8DiW3KUzIQKBgQC/9kreFDhs9wrFDvbDxHxJJo0PJTGmYtE4
17
+ g3meRp5QWOudZgi25qqCcWq9/uqen8UozjeFEKVZsR2gITJXGkEn0wv3zx6MYmHX
18
+ uRCpkBbUAk1+/V097fd0/pxLJ4sF3o02EGeoIzY54NyuwEVZqb6mvVMd9HqgFbHt
19
+ /7G81lbLxQKBgQCpJMP6CR+TqzYEPU3xtJ7EoYgyZU6k0s3v1dPkj7bNpJmTj/j/
20
+ n5QZGyY8PiKaNvMgJnDsilrP3z++a4XLGsip3MXcGnQV+SoePYzgxDhel6ebt+F2
21
+ nOpR4wr/4Dj6YHZJyEkjYk0yxYR06abzY6K45slrJdig+fIn/+u+tnWEoQKBgQCx
22
+ rhIMTyEPUvcIAVrNR7BWsTU9wIqdXLgVnDRVGT5uVm/4J7qHOSi4Rqyroimem3oN
23
+ 1Bq1svup8nPehPuofeezKfjY7kBzZpjz6RuQJ4vJvzvmADRvHzW+d/FI6xgWXbHN
24
+ Sg/4JGeL2SPLKLLIVILgqTsm7eUXCh3Akrz8clSylQKBgG+ZjOjdqDESfMQKN1uW
25
+ LyZsonbZPaJGniQGaCidn/Fm1WS+52DM3TEk83cNZpkLXkX0ztDYVshnuzWRKtrS
26
+ Y2tiZbO2X7Mby1Inw4hqRDix6inpS6ze5h9X9Zflx5/mWBKnXStOX6Fl+I5G4fKD
27
+ km2+3SLHP0y2NKs6sNcESdcY
28
28
  -----END PRIVATE KEY-----
@@ -1,19 +1,19 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDCTCCAfGgAwIBAgIUTGOVLujr87ZCu9awR14/B9+ixhAwDQYJKoZIhvcNAQEL
3
- BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDMyNzE0NDA1OFoXDTI0MDMy
4
- NjE0NDA1OFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
- AAOCAQ8AMIIBCgKCAQEAuqecCCcJzociuLUCtIq1Df1L21nMGX+nUeb+1me5QBej
6
- HJlYg6GqWva8q1LhkaMbUgUCg2gEd3eXD85nmA+zIVI2x1ihZrDXQMmStQPpgfKX
7
- 7uGO2x/L6GlZzi6aiQMsbze+7aUpJddw/wqICmsGcn/XHDrT638dQL62gNiyTNr2
8
- Xo2szi9ArzZJaeSgKJ4MylOlc0/cbEnOpTgizgBCMO2yCd/tTghuJZB1h06WnzP/
9
- LxGK4Or4SzFw7yMsBLHKELur8829KocS76lqF7tj1xRyEMLZDnBQ8T7If5W1j/rE
10
- W+S9dLfhjU1sIdlwGEVF440eIfH8oKvGJmx7fv9ZlwIDAQABo1MwUTAdBgNVHQ4E
11
- FgQUqEjSj4TWysGuRcOH+sQ8sB/My+UwHwYDVR0jBBgwFoAUqEjSj4TWysGuRcOH
12
- +sQ8sB/My+UwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAf4rf
13
- mVg0ND3Bnc2dIzxteLwt24HOdUC3AvDDpjXIGRXDWBwVYkhNDRAuO7vYCSLaS7zG
14
- W+hUbdNBg02xKt1nLVgh3YH2Oz455oaTNqmXoVvZwDmiOOCbtWJMsxAMRk4XqCIK
15
- F/56+8ME9wrN0ktST+b6AIROvZn0+COCVLIV3p/HQ0rhhtzHL/8r3CrQ0P9gTuf0
16
- ZJmRafuSxPgR5GhqfaWOmLkVqfoKKZWc8OZio1RF9UTOZ8b6pNASh3Aye3uc9XHR
17
- S+4HmxBmuWz5LPYBA1ZkXqjzVpLk4EIxHDQcG/fPBbDqJgF6mSkg+ALHv3SlYwXD
18
- IWvSJ0J91kwDRJ7UoA==
2
+ MIIDCTCCAfGgAwIBAgIUV2ScIgC3JXeZTVaQostFFNXzJw8wDQYJKoZIhvcNAQEL
3
+ BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDQxMDE0MTMyNVoXDTI0MDQw
4
+ OTE0MTMyNVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
5
+ AAOCAQ8AMIIBCgKCAQEAuibVyhjo8XVICXbkYXyefrIU3+FpOSC8/uxVkoc9ehl3
6
+ wmj5qaBY+hvcSbaMJz6nBSWrt0Q5WfPYV7GFEmbfYB5eV+3I/yIklqGGSthuLkkG
7
+ x47T9lhg18afUm6i+YEKw0T4c7ordH3Ee+bmCam2OBZD9C/KbJdmmcFVmoDirYuW
8
+ 9LNCAuL11CGeVvYrWsmHfbb4w3WpjjiE3IIpaDvKmhnXD0m3ngafekR9gnTeTwwF
9
+ Fe0TQT/4VjeLg0rK9GvzWGrgrvbGqUXdDnFKj4fAa+IkpRIcX5jQbRWG0pXesOsY
10
+ hyHKkDTmtcFLqzzxIOLetd0VWPaIPhKAZcKHjcGDZQIDAQABo1MwUTAdBgNVHQ4E
11
+ FgQUfDYIVKNIPAgUebNyI6Flib2yWpAwHwYDVR0jBBgwFoAUfDYIVKNIPAgUebNy
12
+ I6Flib2yWpAwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAiMIS
13
+ 461bq3O1Zyy27v7+0OSxzYw9Ozc/54Qz4+ZwmEByrwlO1p+9kZcTq1roIecQU5ES
14
+ +m/A+GeJdVH7i8zoGpOhEXeghhZZmgFt+gQPfJseD/LKP4pWBMM0ARzYV2rKNGkc
15
+ 56E2/yC7+vsedgL030MwqzCPV2MVzZC+CXCc+oM9tCbxxwZMrzLBhIvh9SVLnysV
16
+ Quhvw49E873vYx0JepGwM20qnmWrujFuDgXC7wBeJ6ANgsk4HP1/vUzUbJB2rAuW
17
+ 4ndyyHEki+42lRvO9bVODd5gLvVvigklXEqEgrQzZafB1V5BJ4n1PYx5uXz4I9ki
18
+ unHx+y8nyaAdhOFQMg==
19
19
  -----END CERTIFICATE-----
@@ -174,12 +174,16 @@ class WebPackGenerator {
174
174
  statsFilename = statsFilename.split(".").slice(0, -1).join(".");
175
175
  statsFilename = `${statsFilename}.${options.devMode ? "dev" : "prod"}.html`;
176
176
 
177
+ if (!options.disableStats) {
178
+ this.webpackConfig.plugins.push(
179
+ new Visualizer({
180
+ reportFilename: path.join(statsLocation, statsFilename),
181
+ openAnalyzer: false,
182
+ analyzerMode: `static`
183
+ })
184
+ );
185
+ }
177
186
  this.webpackConfig.plugins.push(
178
- new Visualizer({
179
- reportFilename: path.join(statsLocation, statsFilename),
180
- openAnalyzer: false,
181
- analyzerMode: `static`
182
- }),
183
187
  new PowerBICustomVisualsWebpackPlugin(pluginConfiguration),
184
188
  new ExtraWatchWebpackPlugin({
185
189
  files: [visualPackage.buildPath(this.pbiviz.capabilities)]
@@ -262,7 +266,8 @@ class WebPackGenerator {
262
266
  minify: true,
263
267
  devServerPort: 8080,
264
268
  fast: false,
265
- compression: 0
269
+ compression: 0,
270
+ disableStats: false
266
271
  }) {
267
272
  const tsconfigPath = visualPackage.buildPath('tsconfig.json');
268
273
  const tsconfig = require(tsconfigPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powerbi-visuals-tools",
3
- "version": "4.2.1",
3
+ "version": "4.3.0",
4
4
  "description": "Command line tool for creating and publishing visuals for Power BI",
5
5
  "main": "./lib/VisualPackage.js",
6
6
  "scripts": {
@@ -40,7 +40,7 @@
40
40
  "domain-browser": "^4.22.0",
41
41
  "events": "^3.3.0",
42
42
  "extra-watch-webpack-plugin": "^1.0.3",
43
- "fs-extra": "^11.1.0",
43
+ "fs-extra": "^11.1.1",
44
44
  "https-browserify": "^1.0.0",
45
45
  "json-loader": "0.5.7",
46
46
  "jszip": "^3.10.1",
@@ -49,7 +49,7 @@
49
49
  "lodash.clonedeep": "4.5.0",
50
50
  "lodash.defaults": "4.2.0",
51
51
  "lodash.isequal": "4.5.0",
52
- "mini-css-extract-plugin": "^2.7.4",
52
+ "mini-css-extract-plugin": "^2.7.5",
53
53
  "os-browserify": "^0.3.0",
54
54
  "path-browserify": "^1.0.1",
55
55
  "powerbi-visuals-webpack-plugin": "^3.2.0",
@@ -68,9 +68,9 @@
68
68
  "util": "^0.12.5",
69
69
  "uuid": "9.0.0",
70
70
  "vm-browserify": "^1.1.2",
71
- "webpack": "^5.76.2",
71
+ "webpack": "^5.78.0",
72
72
  "webpack-bundle-analyzer": "4.8.0",
73
- "webpack-dev-server": "^4.12.0"
73
+ "webpack-dev-server": "^4.13.2"
74
74
  },
75
75
  "devDependencies": {
76
76
  "eslint": "^8.36.0",
@@ -443,6 +443,26 @@ describe("E2E - pbiviz package", () => {
443
443
  });
444
444
  });
445
445
 
446
+ it("Should generate statistic files without flags", () => {
447
+ FileSystem.runPbiviz('package');
448
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.prod.html');
449
+ try {
450
+ expect(fs.statSync(statisticFilePath).isFile()).toBe(true);
451
+ } catch (error) {
452
+ expect(error).toBeNull();
453
+ }
454
+ });
455
+
456
+ it("Shouldn't generate statistic files with --no-stats flag", () => {
457
+ FileSystem.runPbiviz('package', '--no-stats');
458
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.prod.html');
459
+ try {
460
+ fs.statSync(statisticFilePath).isFile();
461
+ } catch (error) {
462
+ expect(error).not.toBeNull();
463
+ }
464
+ });
465
+
446
466
  });
447
467
 
448
468
  function mkDirPromise(path) {
@@ -94,6 +94,34 @@ describe("E2E - pbiviz start", () => {
94
94
  expect(error.message).toContain("Error: pbiviz.json not found. You must be in the root of a visual project to run this command");
95
95
  });
96
96
 
97
+ it("Should generate statistic files without flags", (done) => {
98
+ process.chdir(visualPath);
99
+ const pbivizProc = FileSystem.runPbivizAsync('start');
100
+ startChecker(pbivizProc).then(() => {
101
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.dev.html');
102
+ try {
103
+ expect(fs.statSync(statisticFilePath).isFile()).toBe(true);
104
+ } catch (error) {
105
+ expect(error).toBeNull();
106
+ }
107
+ procKiller(pbivizProc, done);
108
+ });
109
+ });
110
+
111
+ it("Shouldn't generate statistic files with --no-stats flag", (done) => {
112
+ process.chdir(visualPath);
113
+ const pbivizProc = FileSystem.runPbivizAsync('start', '--no-stats');
114
+ startChecker(pbivizProc).then(() => {
115
+ const statisticFilePath = path.join(visualPath, 'webpack.statistics.dev.html');
116
+ try {
117
+ fs.statSync(statisticFilePath).isFile();
118
+ } catch (error) {
119
+ expect(error).not.toBeNull();
120
+ }
121
+ procKiller(pbivizProc, done);
122
+ });
123
+ });
124
+
97
125
  describe("Build and Server", () => {
98
126
  let pbivizProc;
99
127
 
@@ -130,7 +158,6 @@ describe("E2E - pbiviz start", () => {
130
158
  });
131
159
  });
132
160
 
133
-
134
161
  it("Should serve files from drop folder on port 8080", (done) => {
135
162
  startChecker(pbivizProc).then(() => {
136
163
  async.each(