Skip to content

Commit dc29819

Browse files
committed
Add tests for mask segment view helper
1 parent 4bc45a2 commit dc29819

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import {describe, test, assert, beforeEach} from 'vitest';
2+
import {
3+
MaskSegmentViewHelper
4+
} from '../../src/image/maskSegmentViewHelper.js';
5+
6+
/**
7+
* Tests for the 'image/maskSegmentViewHelper.js' file.
8+
*/
9+
10+
describe('image', () => {
11+
12+
let helper;
13+
14+
beforeEach(() => {
15+
helper = new MaskSegmentViewHelper();
16+
});
17+
18+
/**
19+
* Tests that isHidden returns false for a segment never added.
20+
*
21+
* @function module:tests/image~mask-segment-view-helper-is-hidden-initial
22+
*/
23+
test('MaskSegmentViewHelper isHidden returns false initially', () => {
24+
assert.notOk(helper.isHidden(1));
25+
assert.notOk(helper.isHidden(99));
26+
});
27+
28+
/**
29+
* Tests that a segment is hidden after addToHidden.
30+
*
31+
* @function module:tests/image~mask-segment-view-helper-add-to-hidden
32+
*/
33+
test('MaskSegmentViewHelper addToHidden makes segment hidden', () => {
34+
helper.addToHidden(1);
35+
assert.ok(helper.isHidden(1), 'hidden after add');
36+
assert.notOk(helper.isHidden(2), 'other segments unaffected');
37+
});
38+
39+
/**
40+
* Tests that addToHidden is a no-op for an already-hidden segment.
41+
*
42+
* @function module:tests/image~mask-segment-view-helper-add-duplicate
43+
*/
44+
test('MaskSegmentViewHelper addToHidden ignores duplicate', () => {
45+
helper.addToHidden(1);
46+
helper.addToHidden(1); // duplicate — should not throw or double-add
47+
helper.removeFromHidden(1);
48+
assert.notOk(helper.isHidden(1), 'single remove is enough');
49+
});
50+
51+
/**
52+
* Tests that removeFromHidden unhides a hidden segment.
53+
*
54+
* @function module:tests/image~mask-segment-view-helper-remove-from-hidden
55+
*/
56+
test('MaskSegmentViewHelper removeFromHidden unhides a segment', () => {
57+
helper.addToHidden(1);
58+
helper.addToHidden(2);
59+
helper.removeFromHidden(1);
60+
assert.notOk(helper.isHidden(1), 'segment 1 removed');
61+
assert.ok(helper.isHidden(2), 'segment 2 unaffected');
62+
});
63+
64+
/**
65+
* Tests that removeFromHidden is a no-op for a segment not in the list.
66+
*
67+
* @function module:tests/image~mask-segment-view-helper-remove-unknown
68+
*/
69+
test('MaskSegmentViewHelper removeFromHidden is a no-op for unknown', () => {
70+
helper.addToHidden(1);
71+
helper.removeFromHidden(99); // no-op
72+
assert.ok(helper.isHidden(1), 'existing segment unaffected');
73+
});
74+
75+
/**
76+
* Tests that multiple segments can be independently hidden and shown.
77+
*
78+
* @function module:tests/image~mask-segment-view-helper-multiple
79+
*/
80+
test('MaskSegmentViewHelper manages multiple segments independently', () => {
81+
helper.addToHidden(1);
82+
helper.addToHidden(2);
83+
helper.addToHidden(3);
84+
helper.removeFromHidden(2);
85+
assert.ok(helper.isHidden(1), 'seg 1 still hidden');
86+
assert.notOk(helper.isHidden(2), 'seg 2 removed');
87+
assert.ok(helper.isHidden(3), 'seg 3 still hidden');
88+
});
89+
90+
});

0 commit comments

Comments
 (0)