@jsenv/test 3.3.12 → 3.3.14

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.
Files changed (32) hide show
  1. package/dist/js/execute_using_dynamic_import.js +58 -58
  2. package/dist/jsenv_test.js +1476 -1464
  3. package/dist/node_child_process_controlled.mjs +1 -1
  4. package/dist/node_worker_thread_controlled.mjs +2 -2
  5. package/package.json +8 -8
  6. package/src/coverage/empty_coverage_factory.js +2 -2
  7. package/src/coverage/file_by_file_coverage.js +1 -1
  8. package/src/coverage/generate_coverage.js +6 -6
  9. package/src/coverage/missing_coverage.js +1 -1
  10. package/src/coverage/report_coverage_as_html.js +3 -3
  11. package/src/coverage/report_coverage_as_json.js +1 -1
  12. package/src/coverage/v8_coverage_node_directory.js +2 -2
  13. package/src/coverage/v8_coverage_to_istanbul.js +1 -1
  14. package/src/execution/exception.js +1 -1
  15. package/src/execution/execute.js +1 -1
  16. package/src/execution/execute_test_plan.js +20 -20
  17. package/src/execution/format_error_for_terminal.js +2 -2
  18. package/src/execution/reporters/reporter_list.js +21 -9
  19. package/src/execution/run.js +1 -1
  20. package/src/execution/web_server/start_using_command.js +1 -1
  21. package/src/execution/web_server_param.js +3 -3
  22. package/src/helpers/cpu_usage.test_manual.js +1 -1
  23. package/src/helpers/web_url_converter.js +1 -1
  24. package/src/main.js +4 -2
  25. package/src/runtime_browsers/middleware_istanbul.js +2 -2
  26. package/src/runtime_browsers/middleware_js_supervisor.js +2 -2
  27. package/src/runtime_browsers/using_playwright.js +5 -5
  28. package/src/runtime_node/execute_using_dynamic_import.js +2 -2
  29. package/src/runtime_node/importmap_hooks.mjs +1 -1
  30. package/src/runtime_node/node_child_process.js +4 -4
  31. package/src/runtime_node/node_worker_thread.js +3 -3
  32. package/src/runtime_node/node_worker_thread_controlled.mjs +1 -1
@@ -1,64 +1,8 @@
1
1
  import { writeFileSync } from "node:fs";
2
2
  import { memoryUsage } from "node:process";
3
- import { Session } from "node:inspector";
4
- import { PerformanceObserver, performance } from "node:perf_hooks";
5
3
  import { createException } from "./exception.js";
6
-
7
- /*
8
- * Calling Profiler.startPreciseCoverage DO NOT propagate to
9
- * subprocesses (new Worker or child_process.fork())
10
- * So the best solution remains NODE_V8_COVERAGE
11
- * This profiler strategy remains useful when:
12
- * - As fallback when NODE_V8_COVERAGE is not configured
13
- * - If explicitely enabled with coverageMethodForNodeJs: "Profiler"
14
- * - Used by jsenv during automated tests about coverage
15
- * - Anyone prefering this approach over NODE_V8_COVERAGE and assuming
16
- * it will not fork subprocess or don't care if coverage is missed for this code
17
- * - https://v8.dev/blog/javascript-code-coverage#for-embedders
18
- * - https://github.com/nodejs/node/issues/28283
19
- * - https://vanilla.aslushnikov.com/?Profiler.startPreciseCoverage
20
- */
21
-
22
-
23
- const startJsCoverage = async ({
24
- callCount = true,
25
- detailed = true,
26
- } = {}) => {
27
- const session = new Session();
28
- session.connect();
29
- const postSession = (action, options) => {
30
- const promise = new Promise((resolve, reject) => {
31
- session.post(action, options, (error, data) => {
32
- if (error) {
33
- reject(error);
34
- } else {
35
- resolve(data);
36
- }
37
- });
38
- });
39
- return promise;
40
- };
41
-
42
- await postSession("Profiler.enable");
43
- await postSession("Profiler.startPreciseCoverage", { callCount, detailed });
44
-
45
- const takeJsCoverage = async () => {
46
- const coverage = await postSession("Profiler.takePreciseCoverage");
47
- return coverage;
48
- };
49
-
50
- const stopJsCoverage = async () => {
51
- const coverage = await takeJsCoverage();
52
- await postSession("Profiler.stopPreciseCoverage");
53
- await postSession("Profiler.disable");
54
- return coverage;
55
- };
56
-
57
- return {
58
- takeJsCoverage,
59
- stopJsCoverage,
60
- };
61
- };
4
+ import { PerformanceObserver, performance } from "node:perf_hooks";
5
+ import { Session } from "node:inspector";
62
6
 
63
7
  const startObservingPerformances = () => {
64
8
  const measureEntries = [];
@@ -126,6 +70,62 @@ const measuresFromMeasureEntries = (measureEntries) => {
126
70
  return measures;
127
71
  };
128
72
 
73
+ /*
74
+ * Calling Profiler.startPreciseCoverage DO NOT propagate to
75
+ * subprocesses (new Worker or child_process.fork())
76
+ * So the best solution remains NODE_V8_COVERAGE
77
+ * This profiler strategy remains useful when:
78
+ * - As fallback when NODE_V8_COVERAGE is not configured
79
+ * - If explicitely enabled with coverageMethodForNodeJs: "Profiler"
80
+ * - Used by jsenv during automated tests about coverage
81
+ * - Anyone prefering this approach over NODE_V8_COVERAGE and assuming
82
+ * it will not fork subprocess or don't care if coverage is missed for this code
83
+ * - https://v8.dev/blog/javascript-code-coverage#for-embedders
84
+ * - https://github.com/nodejs/node/issues/28283
85
+ * - https://vanilla.aslushnikov.com/?Profiler.startPreciseCoverage
86
+ */
87
+
88
+
89
+ const startJsCoverage = async ({
90
+ callCount = true,
91
+ detailed = true,
92
+ } = {}) => {
93
+ const session = new Session();
94
+ session.connect();
95
+ const postSession = (action, options) => {
96
+ const promise = new Promise((resolve, reject) => {
97
+ session.post(action, options, (error, data) => {
98
+ if (error) {
99
+ reject(error);
100
+ } else {
101
+ resolve(data);
102
+ }
103
+ });
104
+ });
105
+ return promise;
106
+ };
107
+
108
+ await postSession("Profiler.enable");
109
+ await postSession("Profiler.startPreciseCoverage", { callCount, detailed });
110
+
111
+ const takeJsCoverage = async () => {
112
+ const coverage = await postSession("Profiler.takePreciseCoverage");
113
+ return coverage;
114
+ };
115
+
116
+ const stopJsCoverage = async () => {
117
+ const coverage = await takeJsCoverage();
118
+ await postSession("Profiler.stopPreciseCoverage");
119
+ await postSession("Profiler.disable");
120
+ return coverage;
121
+ };
122
+
123
+ return {
124
+ takeJsCoverage,
125
+ stopJsCoverage,
126
+ };
127
+ };
128
+
129
129
  const executeUsingDynamicImport = async ({
130
130
  rootDirectoryUrl,
131
131
  fileUrl,