mirror of
https://github.com/scratchfoundation/scratch-paint.git
synced 2024-12-24 06:22:23 -05:00
51 lines
2.3 KiB
JavaScript
51 lines
2.3 KiB
JavaScript
/* eslint-env jest */
|
|
import strokeWidthReducer from '../../src/reducers/stroke-width';
|
|
import {MAX_STROKE_WIDTH, changeStrokeWidth} from '../../src/reducers/stroke-width';
|
|
import {setSelectedItems} from '../../src/reducers/selected-items';
|
|
import {mockPaperRootItem} from '../__mocks__/paperMocks';
|
|
|
|
test('initialState', () => {
|
|
let defaultState;
|
|
|
|
expect(strokeWidthReducer(defaultState /* state */, {type: 'anything'} /* action */)).toBeDefined();
|
|
expect(strokeWidthReducer(defaultState /* state */, {type: 'anything'} /* action */)).toBeGreaterThanOrEqual(0);
|
|
});
|
|
|
|
test('changestrokeWidth', () => {
|
|
let defaultState;
|
|
const newstrokeWidth = 234;
|
|
|
|
expect(strokeWidthReducer(defaultState /* state */, changeStrokeWidth(newstrokeWidth) /* action */))
|
|
.toEqual(newstrokeWidth);
|
|
expect(strokeWidthReducer(1 /* state */, changeStrokeWidth(newstrokeWidth) /* action */))
|
|
.toEqual(newstrokeWidth);
|
|
expect(strokeWidthReducer(1 /* state */, changeStrokeWidth(-1) /* action */))
|
|
.toEqual(0);
|
|
expect(strokeWidthReducer(1 /* state */, changeStrokeWidth(453452352) /* action */))
|
|
.toEqual(MAX_STROKE_WIDTH);
|
|
});
|
|
|
|
test('changeStrokeWidthViaSelectedItems', () => {
|
|
let defaultState;
|
|
|
|
const strokeWidth1 = 6;
|
|
let strokeWidth2; // no outline
|
|
let selectedItems = [mockPaperRootItem({strokeWidth: strokeWidth1})];
|
|
expect(strokeWidthReducer(defaultState /* state */, setSelectedItems(selectedItems) /* action */))
|
|
.toEqual(strokeWidth1);
|
|
selectedItems = [mockPaperRootItem({strokeWidth: strokeWidth2})];
|
|
expect(strokeWidthReducer(defaultState /* state */, setSelectedItems(selectedItems) /* action */))
|
|
.toEqual(0); // Convert no outline to stroke width 0
|
|
selectedItems = [mockPaperRootItem({strokeWidth: strokeWidth1}), mockPaperRootItem({strokeWidth: strokeWidth2})];
|
|
expect(strokeWidthReducer(defaultState /* state */, setSelectedItems(selectedItems) /* action */))
|
|
.toEqual(null); // null indicates mixed for stroke width
|
|
});
|
|
|
|
test('invalidChangestrokeWidth', () => {
|
|
const origState = {strokeWidth: 1};
|
|
|
|
expect(strokeWidthReducer(origState /* state */, changeStrokeWidth('invalid argument') /* action */))
|
|
.toBe(origState);
|
|
expect(strokeWidthReducer(origState /* state */, changeStrokeWidth() /* action */))
|
|
.toBe(origState);
|
|
});
|