Skip to content

Commit 83c5c8d

Browse files
authored
Merge pull request #5877 from vyagh/fix/update-failing-tests
test: fix broken tests after deps refactor and logoconstants update
2 parents 6c175b3 + 8846c61 commit 83c5c8d

File tree

3 files changed

+20
-19
lines changed

3 files changed

+20
-19
lines changed

js/__tests__/logo.test.js

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ global.doStopVideoCam = jest.fn();
5757
global.CAMERAVALUE = "camera:";
5858
global.VIDEOVALUE = "video:";
5959
global.doUseCamera = jest.fn();
60-
global.delayExecution = jest.fn((ms, callback) => callback());
60+
global.delayExecution = jest.fn(() => Promise.resolve());
6161
global.getStatsFromNotation = jest.fn();
6262
global.Tone = {
6363
UserMedia: jest.fn().mockImplementation(() => ({
@@ -230,7 +230,8 @@ describe("Logo Class", () => {
230230
},
231231
stage: {
232232
removeEventListener: jest.fn(),
233-
addEventListener: jest.fn()
233+
addEventListener: jest.fn(),
234+
update: jest.fn()
234235
},
235236
onStopTurtle: jest.fn(),
236237
onRunTurtle: jest.fn(),
@@ -708,7 +709,8 @@ describe("Logo comprehensive method coverage", () => {
708709
stage: {
709710
addEventListener: jest.fn(),
710711
removeEventListener: jest.fn(),
711-
dispatchEvent: jest.fn()
712+
dispatchEvent: jest.fn(),
713+
update: jest.fn()
712714
},
713715
errorMsg: jest.fn(),
714716
textMsg: jest.fn(),
@@ -913,16 +915,15 @@ describe("Logo comprehensive method coverage", () => {
913915
});
914916

915917
test("initMediaDevices sets mic/limit on success and reports microphone errors", () => {
916-
const originalTone = global.Tone;
917918
const open = jest.fn();
918-
global.Tone = { UserMedia: jest.fn(() => ({ open })) };
919+
logo.deps.Tone = { UserMedia: jest.fn(() => ({ open })) };
919920

920921
logo.initMediaDevices();
921922
expect(open).toHaveBeenCalled();
922923
expect(logo.limit).toBe(16384);
923924
expect(logo.mic).toBeTruthy();
924925

925-
global.Tone = {
926+
logo.deps.Tone = {
926927
UserMedia: jest.fn(() => ({
927928
open: jest.fn(() => {
928929
throw new Error("no mic");
@@ -932,8 +933,6 @@ describe("Logo comprehensive method coverage", () => {
932933
logo.initMediaDevices();
933934
expect(mockActivity.errorMsg).toHaveBeenCalledWith("The microphone is not available.");
934935
expect(logo.mic).toBeNull();
935-
936-
global.Tone = originalTone;
937936
});
938937

939938
test("processShow handles image/url/loadFile/default branches", () => {
@@ -956,23 +955,23 @@ describe("Logo comprehensive method coverage", () => {
956955
fn();
957956
return 2;
958957
});
959-
global.delayExecution = jest.fn(() => Promise.resolve());
958+
logo.deps.utils.delayExecution = jest.fn(() => Promise.resolve());
960959

961960
turtle0.singer.embeddedGraphics = {};
962961
await logo.dispatchTurtleSignals(0, 0.5, 3, 0);
963-
expect(global.delayExecution).not.toHaveBeenCalled();
962+
expect(logo.deps.utils.delayExecution).not.toHaveBeenCalled();
964963

965964
turtle0.singer.embeddedGraphics = { 3: [] };
966965
await logo.dispatchTurtleSignals(0, 0.5, 3, 0);
967-
expect(global.delayExecution).not.toHaveBeenCalled();
966+
expect(logo.deps.utils.delayExecution).not.toHaveBeenCalled();
968967

969968
turtle0.singer.embeddedGraphics = { 3: [1] };
970969
logo.blockList = [null, { name: "clear", connections: [] }];
971970
await logo.dispatchTurtleSignals(0, 0.5, 3, 0.1);
972971

973972
expect(turtle0.painter.doSetHeading).toHaveBeenCalledWith(0);
974973
expect(turtle0.painter.doSetXY).toHaveBeenCalledWith(0, 0);
975-
expect(global.delayExecution).toHaveBeenCalledWith(500);
974+
expect(logo.deps.utils.delayExecution).toHaveBeenCalledWith(500);
976975
expect(turtle0.embeddedGraphicsFinished).toBe(true);
977976
});
978977

@@ -1061,7 +1060,7 @@ describe("Logo comprehensive method coverage", () => {
10611060

10621061
test("doStopTurtles covers companion/camera/recorder/showBlocks branches", () => {
10631062
const clearIntervalSpy = jest.spyOn(global, "clearInterval").mockImplementation(() => {});
1064-
global.instruments = { 0: { flute: {} }, 1: { piano: {} } };
1063+
logo.deps.instruments = { 0: { flute: {} }, 1: { piano: {} } };
10651064
turtle0.singer.killAllVoices = jest.fn();
10661065
turtle0.companionTurtle = 1;
10671066
turtle1.interval = 888;
@@ -1141,7 +1140,7 @@ describe("Logo comprehensive method coverage", () => {
11411140
logo.parseArg = jest.fn(() => 9);
11421141
logo.processShow = jest.fn();
11431142
logo.processSpeak = jest.fn();
1144-
global.delayExecution = jest.fn(() => Promise.resolve());
1143+
logo.deps.utils.delayExecution = jest.fn(() => Promise.resolve());
11451144

11461145
turtle0.singer.suppressOutput = false;
11471146
turtle0.embeddedGraphicsFinished = false;
@@ -1204,7 +1203,7 @@ describe("Logo comprehensive method coverage", () => {
12041203
expect(logo.processShow).toHaveBeenCalled();
12051204
expect(logo.processSpeak).toHaveBeenCalled();
12061205
expect(mockActivity.textMsg).toHaveBeenCalledWith("9");
1207-
expect(global.delayExecution).toHaveBeenCalledWith(1000);
1206+
expect(logo.deps.utils.delayExecution).toHaveBeenCalledWith(1000);
12081207
});
12091208

12101209
test("constructor supports explicit dependency object mode", () => {
@@ -1217,7 +1216,11 @@ describe("Logo comprehensive method coverage", () => {
12171216
storage: { saveLocally: jest.fn() },
12181217
config: { showBlocksAfterRun: false },
12191218
callbacks: { onStopTurtle: jest.fn(), onRunTurtle: jest.fn() },
1220-
meSpeak: { speak: jest.fn() }
1219+
meSpeak: { speak: jest.fn() },
1220+
classes: {
1221+
Notation: jest.fn(() => ({})),
1222+
Synth: jest.fn(() => ({}))
1223+
}
12211224
};
12221225

12231226
const depLogo = new Logo(deps);

js/__tests__/logoconstants.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ describe("logoconstants", () => {
8181
"TARGETBPM",
8282
"TURTLESTEP",
8383
"NOTEDIV",
84+
"MIN_HIGHLIGHT_DURATION_MS",
8485
"NOMICERRORMSG",
8586
"NANERRORMSG",
8687
"NOSTRINGERRORMSG",

js/__tests__/palette.test.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1294,13 +1294,10 @@ describe("Palettes Class", () => {
12941294
test("_makeBlockFromPalette handles null protoblk", () => {
12951295
palettes.add("test");
12961296
const palette = palettes.dict.test;
1297-
const consoleSpy = jest.spyOn(console, "debug").mockImplementation(() => {});
12981297

12991298
const result = palette._makeBlockFromPalette(null, "box", jest.fn());
13001299

13011300
expect(result).toBeUndefined();
1302-
expect(consoleSpy).toHaveBeenCalled();
1303-
consoleSpy.mockRestore();
13041301
});
13051302

13061303
test("_makeBlockFromPalette uses namedbox default when undefined", () => {

0 commit comments

Comments
 (0)