UNPKG

1.78 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.unparseMarble = void 0;
4function unparseMarble(result, assignSymbolFn) {
5 var FRAME_TIME_FACTOR = 10; // need to be up to date with `TestScheduler.frameTimeFactor`
6 var frames = 0;
7 var marble = '';
8 var isInGroup = false;
9 var groupMembersAmount = 0;
10 var index = 0;
11 var isNextMessageInTheSameFrame = function () {
12 var nextMessage = result[index + 1];
13 return nextMessage && nextMessage.frame === result[index].frame;
14 };
15 result.forEach(function (testMessage, i) {
16 index = i;
17 var framesDiff = testMessage.frame - frames;
18 var emptyFramesAmount = framesDiff > 0 ? framesDiff / FRAME_TIME_FACTOR : 0;
19 marble += '-'.repeat(emptyFramesAmount);
20 if (isNextMessageInTheSameFrame()) {
21 if (!isInGroup) {
22 marble += '(';
23 }
24 isInGroup = true;
25 }
26 switch (testMessage.notification.kind) {
27 case 'N':
28 marble += assignSymbolFn(testMessage.notification);
29 break;
30 case 'E':
31 marble += '#';
32 break;
33 case 'C':
34 marble += '|';
35 break;
36 }
37 if (isInGroup) {
38 groupMembersAmount += 1;
39 }
40 if (!isNextMessageInTheSameFrame() && isInGroup) {
41 marble += ')';
42 isInGroup = false;
43 frames += (groupMembersAmount + 1) * FRAME_TIME_FACTOR;
44 groupMembersAmount = 0;
45 }
46 else {
47 frames = testMessage.frame + FRAME_TIME_FACTOR;
48 }
49 });
50 return marble;
51}
52exports.unparseMarble = unparseMarble;
53//# sourceMappingURL=marble-unparser.js.map
\No newline at end of file