imposium-js-sdk 3.5.5 → 3.5.7
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/.prettierignore +13 -0
- package/CODESTEWARDS.md +12 -0
- package/README.md +14 -15
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/cobertura-coverage.xml +1574 -0
- package/coverage/coverage-final.json +13 -0
- package/coverage/coverage-summary.json +14 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +176 -0
- package/coverage/junit.xml +355 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +176 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov-report/src/Entry.ts.html +205 -0
- package/coverage/lcov-report/src/client/Client.ts.html +1468 -0
- package/coverage/lcov-report/src/client/DirectDeliveryPipe.ts.html +658 -0
- package/coverage/lcov-report/src/client/http/API.ts.html +526 -0
- package/coverage/lcov-report/src/client/http/index.html +116 -0
- package/coverage/lcov-report/src/client/index.html +131 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/scaffolding/ExceptionPipe.ts.html +430 -0
- package/coverage/lcov-report/src/scaffolding/Exceptions.ts.html +616 -0
- package/coverage/lcov-report/src/scaffolding/GoogleAnalytics.ts.html +424 -0
- package/coverage/lcov-report/src/scaffolding/Helpers.ts.html +412 -0
- package/coverage/lcov-report/src/scaffolding/Version.ts.html +118 -0
- package/coverage/lcov-report/src/scaffolding/index.html +176 -0
- package/coverage/lcov-report/src/video/FallbackPlayer.ts.html +133 -0
- package/coverage/lcov-report/src/video/Player.ts.html +1663 -0
- package/coverage/lcov-report/src/video/VideoPlayer.ts.html +679 -0
- package/coverage/lcov-report/src/video/index.html +146 -0
- package/coverage/lcov.info +1426 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/src/Entry.ts.html +205 -0
- package/coverage/src/client/Client.ts.html +1468 -0
- package/coverage/src/client/DirectDeliveryPipe.ts.html +658 -0
- package/coverage/src/client/http/API.ts.html +526 -0
- package/coverage/src/client/http/index.html +116 -0
- package/coverage/src/client/index.html +131 -0
- package/coverage/src/index.html +116 -0
- package/coverage/src/scaffolding/ExceptionPipe.ts.html +430 -0
- package/coverage/src/scaffolding/Exceptions.ts.html +616 -0
- package/coverage/src/scaffolding/GoogleAnalytics.ts.html +424 -0
- package/coverage/src/scaffolding/Helpers.ts.html +412 -0
- package/coverage/src/scaffolding/Version.ts.html +118 -0
- package/coverage/src/scaffolding/index.html +176 -0
- package/coverage/src/video/FallbackPlayer.ts.html +133 -0
- package/coverage/src/video/Player.ts.html +1663 -0
- package/coverage/src/video/VideoPlayer.ts.html +679 -0
- package/coverage/src/video/index.html +146 -0
- package/eslint-report.xml +1 -0
- package/examples/web/.eslintrc.json +10 -14
- package/lib/imposium.js +8023 -7999
- package/lib/imposium.js.map +1 -1
- package/lib/imposium.min.js +1 -1
- package/lib/imposium.min.js.LICENSE.txt +1 -1
- package/lib/imposium.min.js.map +1 -1
- package/package.json +38 -9
- package/tsconfig.eslint.json +8 -0
- package/vitest.config.ts +37 -0
- package/.eslintrc.js +0 -168
- package/CODEOWNERS +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{"total": {"lines":{"total":708,"covered":619,"skipped":0,"pct":87.42},"statements":{"total":716,"covered":625,"skipped":0,"pct":87.29},"functions":{"total":153,"covered":129,"skipped":0,"pct":84.31},"branches":{"total":304,"covered":234,"skipped":0,"pct":76.97},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
|
|
2
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/Entry.ts": {"lines":{"total":2,"covered":0,"skipped":0,"pct":0},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":2,"covered":0,"skipped":0,"pct":0},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
|
|
3
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/client/Client.ts": {"lines":{"total":139,"covered":127,"skipped":0,"pct":91.36},"functions":{"total":20,"covered":19,"skipped":0,"pct":95},"statements":{"total":142,"covered":130,"skipped":0,"pct":91.54},"branches":{"total":85,"covered":68,"skipped":0,"pct":80}}
|
|
4
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/client/DirectDeliveryPipe.ts": {"lines":{"total":63,"covered":56,"skipped":0,"pct":88.88},"functions":{"total":16,"covered":16,"skipped":0,"pct":100},"statements":{"total":64,"covered":57,"skipped":0,"pct":89.06},"branches":{"total":33,"covered":25,"skipped":0,"pct":75.75}}
|
|
5
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/client/http/API.ts": {"lines":{"total":49,"covered":46,"skipped":0,"pct":93.87},"functions":{"total":21,"covered":18,"skipped":0,"pct":85.71},"statements":{"total":49,"covered":46,"skipped":0,"pct":93.87},"branches":{"total":9,"covered":8,"skipped":0,"pct":88.88}}
|
|
6
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/scaffolding/ExceptionPipe.ts": {"lines":{"total":44,"covered":34,"skipped":0,"pct":77.27},"functions":{"total":6,"covered":5,"skipped":0,"pct":83.33},"statements":{"total":44,"covered":34,"skipped":0,"pct":77.27},"branches":{"total":27,"covered":19,"skipped":0,"pct":70.37}}
|
|
7
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/scaffolding/Exceptions.ts": {"lines":{"total":58,"covered":58,"skipped":0,"pct":100},"functions":{"total":14,"covered":14,"skipped":0,"pct":100},"statements":{"total":58,"covered":58,"skipped":0,"pct":100},"branches":{"total":28,"covered":19,"skipped":0,"pct":67.85}}
|
|
8
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/scaffolding/GoogleAnalytics.ts": {"lines":{"total":30,"covered":27,"skipped":0,"pct":90},"functions":{"total":3,"covered":2,"skipped":0,"pct":66.66},"statements":{"total":30,"covered":27,"skipped":0,"pct":90},"branches":{"total":10,"covered":9,"skipped":0,"pct":90}}
|
|
9
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/scaffolding/Helpers.ts": {"lines":{"total":52,"covered":42,"skipped":0,"pct":80.76},"functions":{"total":13,"covered":12,"skipped":0,"pct":92.3},"statements":{"total":53,"covered":43,"skipped":0,"pct":81.13},"branches":{"total":23,"covered":18,"skipped":0,"pct":78.26}}
|
|
10
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/scaffolding/Version.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
|
|
11
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/video/FallbackPlayer.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":4,"covered":4,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
|
|
12
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/video/Player.ts": {"lines":{"total":186,"covered":147,"skipped":0,"pct":79.03},"functions":{"total":39,"covered":24,"skipped":0,"pct":61.53},"statements":{"total":188,"covered":147,"skipped":0,"pct":78.19},"branches":{"total":66,"covered":50,"skipped":0,"pct":75.75}}
|
|
13
|
+
,"/opt/buildagent/work/32523f1dc87b9a4f/src/video/VideoPlayer.ts": {"lines":{"total":78,"covered":75,"skipped":0,"pct":96.15},"functions":{"total":18,"covered":16,"skipped":0,"pct":88.88},"statements":{"total":79,"covered":76,"skipped":0,"pct":96.2},"branches":{"total":23,"covered":18,"skipped":0,"pct":78.26}}
|
|
14
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for All files</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1>All files</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">87.29% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>625/716</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">76.97% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>234/304</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">84.31% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>129/153</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">87.42% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>619/708</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<div class="pad1">
|
|
66
|
+
<table class="coverage-summary">
|
|
67
|
+
<thead>
|
|
68
|
+
<tr>
|
|
69
|
+
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
70
|
+
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
71
|
+
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
72
|
+
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
73
|
+
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
74
|
+
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
75
|
+
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
76
|
+
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
77
|
+
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
78
|
+
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
79
|
+
</tr>
|
|
80
|
+
</thead>
|
|
81
|
+
<tbody><tr>
|
|
82
|
+
<td class="file low" data-value="src"><a href="src/index.html">src</a></td>
|
|
83
|
+
<td data-value="0" class="pic low">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
85
|
+
</td>
|
|
86
|
+
<td data-value="0" class="pct low">0%</td>
|
|
87
|
+
<td data-value="2" class="abs low">0/2</td>
|
|
88
|
+
<td data-value="100" class="pct high">100%</td>
|
|
89
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
90
|
+
<td data-value="100" class="pct high">100%</td>
|
|
91
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
92
|
+
<td data-value="0" class="pct low">0%</td>
|
|
93
|
+
<td data-value="2" class="abs low">0/2</td>
|
|
94
|
+
</tr>
|
|
95
|
+
|
|
96
|
+
<tr>
|
|
97
|
+
<td class="file high" data-value="src/client"><a href="src/client/index.html">src/client</a></td>
|
|
98
|
+
<td data-value="90.77" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
|
|
100
|
+
</td>
|
|
101
|
+
<td data-value="90.77" class="pct high">90.77%</td>
|
|
102
|
+
<td data-value="206" class="abs high">187/206</td>
|
|
103
|
+
<td data-value="78.81" class="pct medium">78.81%</td>
|
|
104
|
+
<td data-value="118" class="abs medium">93/118</td>
|
|
105
|
+
<td data-value="97.22" class="pct high">97.22%</td>
|
|
106
|
+
<td data-value="36" class="abs high">35/36</td>
|
|
107
|
+
<td data-value="90.59" class="pct high">90.59%</td>
|
|
108
|
+
<td data-value="202" class="abs high">183/202</td>
|
|
109
|
+
</tr>
|
|
110
|
+
|
|
111
|
+
<tr>
|
|
112
|
+
<td class="file high" data-value="src/client/http"><a href="src/client/http/index.html">src/client/http</a></td>
|
|
113
|
+
<td data-value="93.87" class="pic high">
|
|
114
|
+
<div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
|
|
115
|
+
</td>
|
|
116
|
+
<td data-value="93.87" class="pct high">93.87%</td>
|
|
117
|
+
<td data-value="49" class="abs high">46/49</td>
|
|
118
|
+
<td data-value="88.88" class="pct high">88.88%</td>
|
|
119
|
+
<td data-value="9" class="abs high">8/9</td>
|
|
120
|
+
<td data-value="85.71" class="pct high">85.71%</td>
|
|
121
|
+
<td data-value="21" class="abs high">18/21</td>
|
|
122
|
+
<td data-value="93.87" class="pct high">93.87%</td>
|
|
123
|
+
<td data-value="49" class="abs high">46/49</td>
|
|
124
|
+
</tr>
|
|
125
|
+
|
|
126
|
+
<tr>
|
|
127
|
+
<td class="file high" data-value="src/scaffolding"><a href="src/scaffolding/index.html">src/scaffolding</a></td>
|
|
128
|
+
<td data-value="87.76" class="pic high">
|
|
129
|
+
<div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
|
|
130
|
+
</td>
|
|
131
|
+
<td data-value="87.76" class="pct high">87.76%</td>
|
|
132
|
+
<td data-value="188" class="abs high">165/188</td>
|
|
133
|
+
<td data-value="73.86" class="pct medium">73.86%</td>
|
|
134
|
+
<td data-value="88" class="abs medium">65/88</td>
|
|
135
|
+
<td data-value="91.89" class="pct high">91.89%</td>
|
|
136
|
+
<td data-value="37" class="abs high">34/37</td>
|
|
137
|
+
<td data-value="87.7" class="pct high">87.7%</td>
|
|
138
|
+
<td data-value="187" class="abs high">164/187</td>
|
|
139
|
+
</tr>
|
|
140
|
+
|
|
141
|
+
<tr>
|
|
142
|
+
<td class="file high" data-value="src/video"><a href="src/video/index.html">src/video</a></td>
|
|
143
|
+
<td data-value="83.76" class="pic high">
|
|
144
|
+
<div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
|
|
145
|
+
</td>
|
|
146
|
+
<td data-value="83.76" class="pct high">83.76%</td>
|
|
147
|
+
<td data-value="271" class="abs high">227/271</td>
|
|
148
|
+
<td data-value="76.4" class="pct medium">76.4%</td>
|
|
149
|
+
<td data-value="89" class="abs medium">68/89</td>
|
|
150
|
+
<td data-value="71.18" class="pct medium">71.18%</td>
|
|
151
|
+
<td data-value="59" class="abs medium">42/59</td>
|
|
152
|
+
<td data-value="84.32" class="pct high">84.32%</td>
|
|
153
|
+
<td data-value="268" class="abs high">226/268</td>
|
|
154
|
+
</tr>
|
|
155
|
+
|
|
156
|
+
</tbody>
|
|
157
|
+
</table>
|
|
158
|
+
</div>
|
|
159
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
160
|
+
</div><!-- /wrapper -->
|
|
161
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
|
+
Code coverage generated by
|
|
163
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
+
at 2026-06-24T14:34:09.170Z
|
|
165
|
+
</div>
|
|
166
|
+
<script src="prettify.js"></script>
|
|
167
|
+
<script>
|
|
168
|
+
window.onload = function () {
|
|
169
|
+
prettyPrint();
|
|
170
|
+
};
|
|
171
|
+
</script>
|
|
172
|
+
<script src="sorter.js"></script>
|
|
173
|
+
<script src="block-navigation.js"></script>
|
|
174
|
+
</body>
|
|
175
|
+
</html>
|
|
176
|
+
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
|
2
|
+
<testsuites name="vitest tests" tests="166" failures="0" errors="0" time="0.255142548">
|
|
3
|
+
<testsuite name="src/client/Client.test.ts" timestamp="2026-06-24T14:34:09.122Z" hostname="d537b62c7623" tests="32" failures="0" errors="0" skipped="0" time="0.039277967">
|
|
4
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > sets clientConfig when given a valid config" time="0.005716233">
|
|
5
|
+
</testcase>
|
|
6
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > calls ExceptionPipe.trapError when config is not an object" time="0.001046616">
|
|
7
|
+
</testcase>
|
|
8
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > calls ExceptionPipe.trapError when storyId is missing" time="0.000425303">
|
|
9
|
+
</testcase>
|
|
10
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > calls ExceptionPipe.trapError when accessToken is missing" time="0.000385751">
|
|
11
|
+
</testcase>
|
|
12
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > applies default environment of production" time="0.000509992">
|
|
13
|
+
</testcase>
|
|
14
|
+
<testcase classname="src/client/Client.test.ts" name="Client constructor / setup > strips unknown keys from config" time="0.000514291">
|
|
15
|
+
</testcase>
|
|
16
|
+
<testcase classname="src/client/Client.test.ts" name="Client.on > registers a callback for a valid event name" time="0.000913062">
|
|
17
|
+
</testcase>
|
|
18
|
+
<testcase classname="src/client/Client.test.ts" name="Client.on > calls ExceptionPipe.trapError when callback is not a function" time="0.000535727">
|
|
19
|
+
</testcase>
|
|
20
|
+
<testcase classname="src/client/Client.test.ts" name="Client.on > calls ExceptionPipe.trapError for an invalid event name" time="0.000790043">
|
|
21
|
+
</testcase>
|
|
22
|
+
<testcase classname="src/client/Client.test.ts" name="Client.off > clears a specific event delegate when given a valid event name" time="0.000762583">
|
|
23
|
+
</testcase>
|
|
24
|
+
<testcase classname="src/client/Client.test.ts" name="Client.off > does not clear other event delegates when removing one" time="0.000630341">
|
|
25
|
+
</testcase>
|
|
26
|
+
<testcase classname="src/client/Client.test.ts" name="Client.off > clears all event delegates when called with no arguments" time="0.000834385">
|
|
27
|
+
</testcase>
|
|
28
|
+
<testcase classname="src/client/Client.test.ts" name="Client.off > calls ExceptionPipe.trapError for an invalid event name" time="0.000620777">
|
|
29
|
+
</testcase>
|
|
30
|
+
<testcase classname="src/client/Client.test.ts" name="Client.bindPlayer > stores the player reference" time="0.000622902">
|
|
31
|
+
</testcase>
|
|
32
|
+
<testcase classname="src/client/Client.test.ts" name="Client.bindPlayer > calls player.setStoryId with the config storyId" time="0.002609014">
|
|
33
|
+
</testcase>
|
|
34
|
+
<testcase classname="src/client/Client.test.ts" name="Client.bindPlayer > sets playerIsFallback when isFallback=true" time="0.000560323">
|
|
35
|
+
</testcase>
|
|
36
|
+
<testcase classname="src/client/Client.test.ts" name="Client.bindPlayer > calls player.setGaProperty when gaProperty is already set" time="0.000632901">
|
|
37
|
+
</testcase>
|
|
38
|
+
<testcase classname="src/client/Client.test.ts" name="Client.captureAnalytics > creates a FallbackPlayer and binds it when given an HTMLVideoElement" time="0.003020445">
|
|
39
|
+
</testcase>
|
|
40
|
+
<testcase classname="src/client/Client.test.ts" name="Client.captureAnalytics > calls ExceptionPipe.trapError when given a non-HTMLVideoElement" time="0.000741822">
|
|
41
|
+
</testcase>
|
|
42
|
+
<testcase classname="src/client/Client.test.ts" name="Client.getExperience > calls directDeliveryPipe.getExperience with the id" time="0.00077033">
|
|
43
|
+
</testcase>
|
|
44
|
+
<testcase classname="src/client/Client.test.ts" name="Client.getExperience > truncates experienceId longer than 36 chars" time="0.000653365">
|
|
45
|
+
</testcase>
|
|
46
|
+
<testcase classname="src/client/Client.test.ts" name="Client.getExperience > calls ExceptionPipe.trapError when player is null and no GOT_EXPERIENCE callback" time="0.000793961">
|
|
47
|
+
</testcase>
|
|
48
|
+
<testcase classname="src/client/Client.test.ts" name="Client.createExperience > calls directDeliveryPipe.createExperience with inventory and render flag" time="0.001650956">
|
|
49
|
+
</testcase>
|
|
50
|
+
<testcase classname="src/client/Client.test.ts" name="Client.createExperience > defaults render to true when not provided" time="0.000737557">
|
|
51
|
+
</testcase>
|
|
52
|
+
<testcase classname="src/client/Client.test.ts" name="Client.renderExperience > calls directDeliveryPipe.fetchExperience with inventory" time="0.000832153">
|
|
53
|
+
</testcase>
|
|
54
|
+
<testcase classname="src/client/Client.test.ts" name="Client.renderExperienceFromId > calls directDeliveryPipe.fetchExperience with null inventory and experienceId" time="0.000927547">
|
|
55
|
+
</testcase>
|
|
56
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > gotExperience > calls the GOT_EXPERIENCE callback on an approved experience" time="0.00081231">
|
|
57
|
+
</testcase>
|
|
58
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > gotExperience > calls player.experienceGenerated when a player is bound" time="0.000853627">
|
|
59
|
+
</testcase>
|
|
60
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > gotExperience > calls ExceptionPipe.trapError for a rejected experience" time="0.001071815">
|
|
61
|
+
</testcase>
|
|
62
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > experienceCreated > calls the EXPERIENCE_CREATED callback when set" time="0.000775897">
|
|
63
|
+
</testcase>
|
|
64
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > experienceCreated > runs without error when EXPERIENCE_CREATED is not set" time="0.001926844">
|
|
65
|
+
</testcase>
|
|
66
|
+
<testcase classname="src/client/Client.test.ts" name="Client internal delegates > internalError > calls ExceptionPipe.trapError with the error" time="0.001026934">
|
|
67
|
+
</testcase>
|
|
68
|
+
</testsuite>
|
|
69
|
+
<testsuite name="src/client/DirectDeliveryPipe.test.ts" timestamp="2026-06-24T14:34:09.128Z" hostname="d537b62c7623" tests="11" failures="0" errors="0" skipped="0" time="0.024269349">
|
|
70
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="createExperience > calls experienceCreated delegate on success" time="0.009897967">
|
|
71
|
+
</testcase>
|
|
72
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="createExperience > calls internalError on non-5xx HTTP error" time="0.001737654">
|
|
73
|
+
</testcase>
|
|
74
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="createExperience > retries on 5xx error and eventually calls internalError" time="0.001075447">
|
|
75
|
+
</testcase>
|
|
76
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="fetchExperience > calls gotExperience delegate on success" time="0.001131796">
|
|
77
|
+
</testcase>
|
|
78
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="fetchExperience > calls internalError when response contains an error field" time="0.00103058">
|
|
79
|
+
</testcase>
|
|
80
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="fetchExperience > falls back to polling on 408 timeout" time="0.001577329">
|
|
81
|
+
</testcase>
|
|
82
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="fetchExperience > calls internalError with render error when axios error has error body" time="0.000887922">
|
|
83
|
+
</testcase>
|
|
84
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="getExperience (pollForExperience) > calls gotExperience when api.get returns a completed experience" time="0.000743983">
|
|
85
|
+
</testcase>
|
|
86
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="getExperience (pollForExperience) > calls internalError when api.get rejects with non-5xx" time="0.001212917">
|
|
87
|
+
</testcase>
|
|
88
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="getExperience (pollForExperience) > calls internalError with RenderError when experience has error field" time="0.001214909">
|
|
89
|
+
</testcase>
|
|
90
|
+
<testcase classname="src/client/DirectDeliveryPipe.test.ts" name="getExperience (pollForExperience) > polls again when experience is still rendering" time="0.00093945">
|
|
91
|
+
</testcase>
|
|
92
|
+
</testsuite>
|
|
93
|
+
<testsuite name="src/scaffolding/ExceptionPipe.test.ts" timestamp="2026-06-24T14:34:09.130Z" hostname="d537b62c7623" tests="10" failures="0" errors="0" skipped="0" time="0.014682583">
|
|
94
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.logWarning > calls console.warn with the warning message" time="0.003459705">
|
|
95
|
+
</testcase>
|
|
96
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.trapError > wraps a plain Error in UncaughtError and calls log()" time="0.001704808">
|
|
97
|
+
</testcase>
|
|
98
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.trapError > calls log() on an ImposiumError directly without wrapping" time="0.000453353">
|
|
99
|
+
</testcase>
|
|
100
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.trapError > invokes the callback when one is provided" time="0.002943161">
|
|
101
|
+
</testcase>
|
|
102
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.trapError > calls setStoryId on the error when a storyId is provided" time="0.000651525">
|
|
103
|
+
</testcase>
|
|
104
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.trapError > does not call setStoryId when storyId is empty" time="0.000758776">
|
|
105
|
+
</testcase>
|
|
106
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.cleanDucktype (private Sentry beforeSend hook) > returns the event unchanged when extra is undefined" time="0.000433673">
|
|
107
|
+
</testcase>
|
|
108
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.cleanDucktype (private Sentry beforeSend hook) > deletes log, logHeader, and setStoryId from the Error extra field" time="0.000519559">
|
|
109
|
+
</testcase>
|
|
110
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.cleanDucktype (private Sentry beforeSend hook) > deletes axiosError from the Error extra field when present" time="0.00035863">
|
|
111
|
+
</testcase>
|
|
112
|
+
<testcase classname="src/scaffolding/ExceptionPipe.test.ts" name="ExceptionPipe.cleanDucktype (private Sentry beforeSend hook) > deletes closeEvent from the Error extra field when present" time="0.000311527">
|
|
113
|
+
</testcase>
|
|
114
|
+
</testsuite>
|
|
115
|
+
<testsuite name="src/scaffolding/Exceptions.test.ts" timestamp="2026-06-24T14:34:09.131Z" hostname="d537b62c7623" tests="16" failures="0" errors="0" skipped="0" time="0.01579232">
|
|
116
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="RenderError > is an instance of Error" time="0.003320084">
|
|
117
|
+
</testcase>
|
|
118
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="RenderError > stores the message passed to the constructor" time="0.000513198">
|
|
119
|
+
</testcase>
|
|
120
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="RenderError > defaults experienceId to <not_set> when null is passed" time="0.002510879">
|
|
121
|
+
</testcase>
|
|
122
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="RenderError > log() calls console.error" time="0.000921723">
|
|
123
|
+
</testcase>
|
|
124
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="ModerationError > uses the message from errors.json" time="0.00048769">
|
|
125
|
+
</testcase>
|
|
126
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="ModerationError > log() calls console.error" time="0.000416997">
|
|
127
|
+
</testcase>
|
|
128
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="ClientConfigurationError > uses the message from errors.json" time="0.000454056">
|
|
129
|
+
</testcase>
|
|
130
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="ClientConfigurationError > log() calls console.error" time="0.00044469">
|
|
131
|
+
</testcase>
|
|
132
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="PlayerConfigurationError > uses the message from errors.json" time="0.000786873">
|
|
133
|
+
</testcase>
|
|
134
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="PlayerConfigurationError > log() calls console.error" time="0.000434894">
|
|
135
|
+
</testcase>
|
|
136
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="HTTPError > uses the default message from errors.json when no axios error is passed" time="0.000468235">
|
|
137
|
+
</testcase>
|
|
138
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="HTTPError > overrides the message with the API error body when present" time="0.000307475">
|
|
139
|
+
</testcase>
|
|
140
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="HTTPError > log() calls console.error" time="0.000464686">
|
|
141
|
+
</testcase>
|
|
142
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="UncaughtError > uses the message from errors.json" time="0.000386892">
|
|
143
|
+
</testcase>
|
|
144
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="UncaughtError > log() calls console.error" time="0.000664119">
|
|
145
|
+
</testcase>
|
|
146
|
+
<testcase classname="src/scaffolding/Exceptions.test.ts" name="ImposiumError.setStoryId > updates the storyId on the error instance" time="0.000379432">
|
|
147
|
+
</testcase>
|
|
148
|
+
</testsuite>
|
|
149
|
+
<testsuite name="src/scaffolding/GoogleAnalytics.test.ts" timestamp="2026-06-24T14:34:09.134Z" hostname="d537b62c7623" tests="7" failures="0" errors="0" skipped="0" time="0.010160641">
|
|
150
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.initialize > sets gaPlacement to the provided value" time="0.003876362">
|
|
151
|
+
</testcase>
|
|
152
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.initialize > runs without error on first call (no cached UUID)" time="0.001443429">
|
|
153
|
+
</testcase>
|
|
154
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.initialize > uses a cached UUID if present and not expired" time="0.000454256">
|
|
155
|
+
</testcase>
|
|
156
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.initialize > generates a fresh UUID when the cached one is expired" time="0.000404476">
|
|
157
|
+
</testcase>
|
|
158
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.send > calls axios.get exactly once" time="0.000825069">
|
|
159
|
+
</testcase>
|
|
160
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.send > includes event action in the request URL" time="0.000494703">
|
|
161
|
+
</testcase>
|
|
162
|
+
<testcase classname="src/scaffolding/GoogleAnalytics.test.ts" name="GoogleAnalytics.send > includes event category in the request URL" time="0.000267544">
|
|
163
|
+
</testcase>
|
|
164
|
+
</testsuite>
|
|
165
|
+
<testsuite name="src/scaffolding/Helpers.test.ts" timestamp="2026-06-24T14:34:09.135Z" hostname="d537b62c7623" tests="27" failures="0" errors="0" skipped="0" time="0.016794237">
|
|
166
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="prepConfig > removes keys not present in defaults" time="0.00434465">
|
|
167
|
+
</testcase>
|
|
168
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="prepConfig > preserves keys that exist in defaults" time="0.001079644">
|
|
169
|
+
</testcase>
|
|
170
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inRangeNumeric > returns true when value is within range" time="0.000387745">
|
|
171
|
+
</testcase>
|
|
172
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inRangeNumeric > returns true at the lower boundary" time="0.000156272">
|
|
173
|
+
</testcase>
|
|
174
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inRangeNumeric > returns true at the upper boundary" time="0.000212835">
|
|
175
|
+
</testcase>
|
|
176
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inRangeNumeric > returns false when value is below range" time="0.000144501">
|
|
177
|
+
</testcase>
|
|
178
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inRangeNumeric > returns false when value is above range" time="0.000121723">
|
|
179
|
+
</testcase>
|
|
180
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns true for arrow functions" time="0.000258165">
|
|
181
|
+
</testcase>
|
|
182
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns true for regular functions" time="0.000271747">
|
|
183
|
+
</testcase>
|
|
184
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns false for strings" time="0.000201738">
|
|
185
|
+
</testcase>
|
|
186
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns false for numbers" time="0.000195284">
|
|
187
|
+
</testcase>
|
|
188
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns false for null" time="0.000200728">
|
|
189
|
+
</testcase>
|
|
190
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="isFunc > returns false for plain objects" time="0.000148179">
|
|
191
|
+
</testcase>
|
|
192
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="keyExists > returns truthy when the value exists in the object" time="0.000203093">
|
|
193
|
+
</testcase>
|
|
194
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="keyExists > returns falsy when the value does not exist in the object" time="0.000148085">
|
|
195
|
+
</testcase>
|
|
196
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="cloneWithKeys > returns an object with the same keys as the input" time="0.0002791">
|
|
197
|
+
</testcase>
|
|
198
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="cloneWithKeys > sets all values to null" time="0.000435055">
|
|
199
|
+
</testcase>
|
|
200
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="calculateAverageMbps > returns the correct average rounded to 2 decimal places" time="0.000302739">
|
|
201
|
+
</testcase>
|
|
202
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="calculateAverageMbps > rounds to 2 decimal places" time="0.000235195">
|
|
203
|
+
</testcase>
|
|
204
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="calculateAverageMbps > handles a single value" time="0.000280669">
|
|
205
|
+
</testcase>
|
|
206
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="generateUUID > returns a string matching UUID v4 format" time="0.000691608">
|
|
207
|
+
</testcase>
|
|
208
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="generateUUID > returns a unique value on each call" time="0.000628293">
|
|
209
|
+
</testcase>
|
|
210
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inventoryToFormData > appends story_id to the FormData" time="0.001008594">
|
|
211
|
+
</testcase>
|
|
212
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inventoryToFormData > appends composition_id when provided" time="0.000314223">
|
|
213
|
+
</testcase>
|
|
214
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inventoryToFormData > does not append composition_id when omitted" time="0.000407896">
|
|
215
|
+
</testcase>
|
|
216
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inventoryToFormData > appends string inventory values" time="0.000204286">
|
|
217
|
+
</testcase>
|
|
218
|
+
<testcase classname="src/scaffolding/Helpers.test.ts" name="inventoryToFormData > skips falsy inventory values" time="0.000215099">
|
|
219
|
+
</testcase>
|
|
220
|
+
</testsuite>
|
|
221
|
+
<testsuite name="src/scaffolding/Version.test.ts" timestamp="2026-06-24T14:34:09.139Z" hostname="d537b62c7623" tests="2" failures="0" errors="0" skipped="0" time="0.005973467">
|
|
222
|
+
<testcase classname="src/scaffolding/Version.test.ts" name="printVersion > calls console.log once" time="0.003478396">
|
|
223
|
+
</testcase>
|
|
224
|
+
<testcase classname="src/scaffolding/Version.test.ts" name="printVersion > includes the version string in the log output" time="0.000493836">
|
|
225
|
+
</testcase>
|
|
226
|
+
</testsuite>
|
|
227
|
+
<testsuite name="src/video/FallbackPlayer.test.ts" timestamp="2026-06-24T14:34:09.140Z" hostname="d537b62c7623" tests="14" failures="0" errors="0" skipped="0" time="0.025457759">
|
|
228
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="FallbackPlayer constructor > creates a player instance from an HTMLVideoElement" time="0.006945425">
|
|
229
|
+
</testcase>
|
|
230
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="FallbackPlayer constructor > calls ExceptionPipe.trapError when given a non-video node" time="0.001964466">
|
|
231
|
+
</testcase>
|
|
232
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="setStoryId > stores the story id" time="0.000904405">
|
|
233
|
+
</testcase>
|
|
234
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="setGaProperty > stores the GA property" time="0.000651833">
|
|
235
|
+
</testcase>
|
|
236
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="setGaProperty > flushes queued GA calls when a property is first set" time="0.00208084">
|
|
237
|
+
</testcase>
|
|
238
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="remove > removes event listeners from the video node without throwing" time="0.001734399">
|
|
239
|
+
</testcase>
|
|
240
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="experienceGenerated > sets the experience id for analytics" time="0.000739108">
|
|
241
|
+
</testcase>
|
|
242
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > onPlay: starts a playback interval and queues a GA call" time="0.001601285">
|
|
243
|
+
</testcase>
|
|
244
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > onPause: clears the playback interval and queues a GA call" time="0.001175091">
|
|
245
|
+
</testcase>
|
|
246
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > onEnded: resets prevPlaybackEvent to 0" time="0.000739305">
|
|
247
|
+
</testcase>
|
|
248
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > onVolumeChange: detects mute" time="0.000837254">
|
|
249
|
+
</testcase>
|
|
250
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > onVolumeChange: detects unmute" time="0.000661517">
|
|
251
|
+
</testcase>
|
|
252
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > checkPlayback: emits playback milestone when threshold crossed" time="0.001487788">
|
|
253
|
+
</testcase>
|
|
254
|
+
<testcase classname="src/video/FallbackPlayer.test.ts" name="VideoPlayer DOM event handlers > checkPlayback: clears interval when node is null" time="0.00084962">
|
|
255
|
+
</testcase>
|
|
256
|
+
</testsuite>
|
|
257
|
+
<testsuite name="src/video/Player.test.ts" timestamp="2026-06-24T14:34:09.142Z" hostname="d537b62c7623" tests="35" failures="0" errors="0" skipped="0" time="0.077506397">
|
|
258
|
+
<testcase classname="src/video/Player.test.ts" name="ImposiumPlayer constructor > calls client.bindPlayer" time="0.017327226">
|
|
259
|
+
</testcase>
|
|
260
|
+
<testcase classname="src/video/Player.test.ts" name="ImposiumPlayer constructor > initialises config from defaults" time="0.00168793">
|
|
261
|
+
</testcase>
|
|
262
|
+
<testcase classname="src/video/Player.test.ts" name="ImposiumPlayer constructor > calls ExceptionPipe.trapError when client has no clientConfig" time="0.001976828">
|
|
263
|
+
</testcase>
|
|
264
|
+
<testcase classname="src/video/Player.test.ts" name="ImposiumPlayer constructor > calls ExceptionPipe.trapError when client is null" time="0.001323146">
|
|
265
|
+
</testcase>
|
|
266
|
+
<testcase classname="src/video/Player.test.ts" name="init > applies config to the video node" time="0.002010332">
|
|
267
|
+
</testcase>
|
|
268
|
+
<testcase classname="src/video/Player.test.ts" name="on / off > registers a native event callback" time="0.001357813">
|
|
269
|
+
</testcase>
|
|
270
|
+
<testcase classname="src/video/Player.test.ts" name="on / off > calls ExceptionPipe.trapError for an invalid event name" time="0.001219412">
|
|
271
|
+
</testcase>
|
|
272
|
+
<testcase classname="src/video/Player.test.ts" name="on / off > calls ExceptionPipe.trapError when callback is not a function" time="0.001101936">
|
|
273
|
+
</testcase>
|
|
274
|
+
<testcase classname="src/video/Player.test.ts" name="on / off > clears a registered callback via off()" time="0.001581212">
|
|
275
|
+
</testcase>
|
|
276
|
+
<testcase classname="src/video/Player.test.ts" name="on / off > calls ExceptionPipe.trapError when off() receives an invalid event" time="0.00107917">
|
|
277
|
+
</testcase>
|
|
278
|
+
<testcase classname="src/video/Player.test.ts" name="play / pause > play calls node.play()" time="0.001289621">
|
|
279
|
+
</testcase>
|
|
280
|
+
<testcase classname="src/video/Player.test.ts" name="play / pause > pause calls node.pause()" time="0.001042171">
|
|
281
|
+
</testcase>
|
|
282
|
+
<testcase classname="src/video/Player.test.ts" name="getPlaybackState / getPosition / getDuration > returns "paused" when node is paused" time="0.000936914">
|
|
283
|
+
</testcase>
|
|
284
|
+
<testcase classname="src/video/Player.test.ts" name="getPlaybackState / getPosition / getDuration > returns "playing" when node is not paused" time="0.000987698">
|
|
285
|
+
</testcase>
|
|
286
|
+
<testcase classname="src/video/Player.test.ts" name="getPlaybackState / getPosition / getDuration > getPosition returns current time" time="0.001065207">
|
|
287
|
+
</testcase>
|
|
288
|
+
<testcase classname="src/video/Player.test.ts" name="getPlaybackState / getPosition / getDuration > getDuration returns video duration" time="0.00097626">
|
|
289
|
+
</testcase>
|
|
290
|
+
<testcase classname="src/video/Player.test.ts" name="seek > sets currentTime when seek is in range" time="0.001125017">
|
|
291
|
+
</testcase>
|
|
292
|
+
<testcase classname="src/video/Player.test.ts" name="seek > logs a warning when seek is out of range" time="0.001230181">
|
|
293
|
+
</testcase>
|
|
294
|
+
<testcase classname="src/video/Player.test.ts" name="seek > logs a warning when duration is NaN (video not loaded)" time="0.00101536">
|
|
295
|
+
</testcase>
|
|
296
|
+
<testcase classname="src/video/Player.test.ts" name="getMute / setMute > getMute returns the node muted state" time="0.000920872">
|
|
297
|
+
</testcase>
|
|
298
|
+
<testcase classname="src/video/Player.test.ts" name="getMute / setMute > setMute updates the node muted state" time="0.001222236">
|
|
299
|
+
</testcase>
|
|
300
|
+
<testcase classname="src/video/Player.test.ts" name="getMute / setMute > setMute invokes the muted callback when registered" time="0.000971136">
|
|
301
|
+
</testcase>
|
|
302
|
+
<testcase classname="src/video/Player.test.ts" name="getVolume / setVolume > getVolume returns the node volume" time="0.000924298">
|
|
303
|
+
</testcase>
|
|
304
|
+
<testcase classname="src/video/Player.test.ts" name="getVolume / setVolume > setVolume updates the node volume within range" time="0.001471503">
|
|
305
|
+
</testcase>
|
|
306
|
+
<testcase classname="src/video/Player.test.ts" name="getVolume / setVolume > logs a warning for volume out of range" time="0.000921943">
|
|
307
|
+
</testcase>
|
|
308
|
+
<testcase classname="src/video/Player.test.ts" name="getControls / setControls > getControls returns the node controls state" time="0.000880014">
|
|
309
|
+
</testcase>
|
|
310
|
+
<testcase classname="src/video/Player.test.ts" name="getControls / setControls > setControls updates the node controls state" time="0.001381386">
|
|
311
|
+
</testcase>
|
|
312
|
+
<testcase classname="src/video/Player.test.ts" name="experienceGenerated > sets the experience id and assigns a src when only mp4 is available" time="0.011465963">
|
|
313
|
+
</testcase>
|
|
314
|
+
<testcase classname="src/video/Player.test.ts" name="experienceGenerated > sets the poster when present" time="0.002197911">
|
|
315
|
+
</testcase>
|
|
316
|
+
<testcase classname="src/video/Player.test.ts" name="doQualityOverride > sets src to the overridden quality URL" time="0.001926761">
|
|
317
|
+
</testcase>
|
|
318
|
+
<testcase classname="src/video/Player.test.ts" name="doQualityOverride > calls ExceptionPipe.trapError when the qualityOverride key does not exist in videos" time="0.001278203">
|
|
319
|
+
</testcase>
|
|
320
|
+
<testcase classname="src/video/Player.test.ts" name="replay > resets currentTime to 0 and calls node.play()" time="0.001296606">
|
|
321
|
+
</testcase>
|
|
322
|
+
<testcase classname="src/video/Player.test.ts" name="replay > pauses before replaying if the node is currently playing" time="0.001168984">
|
|
323
|
+
</testcase>
|
|
324
|
+
<testcase classname="src/video/Player.test.ts" name="remove > sets the node reference to null" time="0.001995345">
|
|
325
|
+
</testcase>
|
|
326
|
+
<testcase classname="src/video/Player.test.ts" name="remove > resets imposiumPlayerConfig to defaults" time="0.002572099">
|
|
327
|
+
</testcase>
|
|
328
|
+
</testsuite>
|
|
329
|
+
<testsuite name="src/client/http/API.test.ts" timestamp="2026-06-24T14:34:09.147Z" hostname="d537b62c7623" tests="12" failures="0" errors="0" skipped="0" time="0.025227828">
|
|
330
|
+
<testcase classname="src/client/http/API.test.ts" name="API constructor > creates an axios instance with the production base URL" time="0.008756583">
|
|
331
|
+
</testcase>
|
|
332
|
+
<testcase classname="src/client/http/API.test.ts" name="API constructor > creates an axios instance with the staging base URL" time="0.000858544">
|
|
333
|
+
</testcase>
|
|
334
|
+
<testcase classname="src/client/http/API.test.ts" name="API constructor > uses the JWT Authorization header when token decodes successfully" time="0.000563224">
|
|
335
|
+
</testcase>
|
|
336
|
+
<testcase classname="src/client/http/API.test.ts" name="API constructor > falls back to HMAC header when jwt_decode throws" time="0.000629551">
|
|
337
|
+
</testcase>
|
|
338
|
+
<testcase classname="src/client/http/API.test.ts" name="API.getGAProperty > resolves with story data on success" time="0.001043806">
|
|
339
|
+
</testcase>
|
|
340
|
+
<testcase classname="src/client/http/API.test.ts" name="API.getGAProperty > rejects when the HTTP call fails" time="0.002993138">
|
|
341
|
+
</testcase>
|
|
342
|
+
<testcase classname="src/client/http/API.test.ts" name="API.get > resolves with experience data on success" time="0.000712604">
|
|
343
|
+
</testcase>
|
|
344
|
+
<testcase classname="src/client/http/API.test.ts" name="API.get > rejects when the HTTP call fails" time="0.001572476">
|
|
345
|
+
</testcase>
|
|
346
|
+
<testcase classname="src/client/http/API.test.ts" name="API.fetch > resolves with experience data on success" time="0.001591463">
|
|
347
|
+
</testcase>
|
|
348
|
+
<testcase classname="src/client/http/API.test.ts" name="API.fetch > calls the progress callback when upload progress fires" time="0.001033882">
|
|
349
|
+
</testcase>
|
|
350
|
+
<testcase classname="src/client/http/API.test.ts" name="API.create > posts to /experience/render when render=true" time="0.001202612">
|
|
351
|
+
</testcase>
|
|
352
|
+
<testcase classname="src/client/http/API.test.ts" name="API.create > posts to /experience when render=false" time="0.000686232">
|
|
353
|
+
</testcase>
|
|
354
|
+
</testsuite>
|
|
355
|
+
</testsuites>
|