-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathbasicblocks.test.js
More file actions
71 lines (61 loc) · 2.55 KB
/
basicblocks.test.js
File metadata and controls
71 lines (61 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const { initBasicProtoBlocks, BACKWARDCOMPATIBILIYDICT } = require('../basicblocks');
const mockActivity = {
blocks: {
palettes: {},
protoBlockDict: {
block1: { palette: { add: jest.fn() } },
block2: { palette: { add: jest.fn() } },
blockWithoutPalette: {}
}
},
palettes: {},
};
const setupFunctions = [
'setupRhythmBlockPaletteBlocks', 'setupRhythmBlocks', 'setupMeterBlocks',
'setupPitchBlocks', 'setupIntervalsBlocks', 'setupToneBlocks',
'setupOrnamentBlocks', 'setupVolumeBlocks', 'setupDrumBlocks',
'setupWidgetBlocks', 'setupFlowBlocks', 'setupNumberBlocks',
'setupActionBlocks', 'setupBoxesBlocks', 'setupBooleanBlocks',
'setupHeapBlocks', 'setupDictBlocks', 'setupExtrasBlocks',
'setupProgramBlocks', 'setupGraphicsBlocks', 'setupPenBlocks',
'setupMediaBlocks', 'setupSensorsBlocks', 'setupEnsembleBlocks'
];
setupFunctions.forEach(fnName => {
global[fnName] = jest.fn();
});
describe('initBasicProtoBlocks', () => {
beforeEach(() => {
jest.clearAllMocks();
});
it('should assign palettes to activity.blocks.palettes', () => {
initBasicProtoBlocks(mockActivity);
expect(mockActivity.blocks.palettes).toBe(mockActivity.palettes);
});
it('should call all setup functions with activity', () => {
initBasicProtoBlocks(mockActivity);
setupFunctions.forEach(fnName => {
expect(global[fnName]).toHaveBeenCalledWith(mockActivity);
});
});
it('should add blocks with palettes to their respective palettes', () => {
initBasicProtoBlocks(mockActivity);
expect(mockActivity.blocks.protoBlockDict.block1.palette.add).toHaveBeenCalledWith(
mockActivity.blocks.protoBlockDict.block1
);
expect(mockActivity.blocks.protoBlockDict.block2.palette.add).toHaveBeenCalledWith(
mockActivity.blocks.protoBlockDict.block2
);
expect(mockActivity.blocks.protoBlockDict.blockWithoutPalette.palette).toBeUndefined();
});
});
describe('BACKWARDCOMPATIBILIYDICT', () => {
it('should be defined and not empty', () => {
expect(BACKWARDCOMPATIBILIYDICT).toBeDefined();
expect(Object.keys(BACKWARDCOMPATIBILIYDICT).length).toBeGreaterThan(0);
});
it('should correctly map old block names to new block names', () => {
expect(BACKWARDCOMPATIBILIYDICT.fullscreen).toBe('vspace');
expect(BACKWARDCOMPATIBILIYDICT.seth).toBe('setheading');
expect(BACKWARDCOMPATIBILIYDICT.random2).toBe('random');
});
});