Skip to content

Commit 76e4899

Browse files
committed
Fix the test suite
1 parent 435bce2 commit 76e4899

File tree

9 files changed

+41
-48
lines changed

9 files changed

+41
-48
lines changed

β€Ž__tests__/jest/components/nodeImpl/Svg.tsxβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jest.mock('../../../../src/jsonUtils/models', () => ({
1010
}));
1111

1212
describe('node <Svg />', () => {
13-
it('generates the json for an svg', () => {
13+
it('generates the json for an svg', async () => {
1414
class SVGElement extends React.Component {
1515
render() {
1616
return (
@@ -26,6 +26,6 @@ describe('node <Svg />', () => {
2626
}
2727
}
2828

29-
expect(ReactSketch.renderToJSON(<SVGElement />)).toMatchSnapshot();
29+
expect(await ReactSketch.renderToJSON(<SVGElement />)).toMatchSnapshot();
3030
});
3131
});

β€Ž__tests__/jest/index.tsβ€Ž

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
/* eslint-disable global-require */
2-
import ReactSketch from '../../src';
3-
jest.mock('../../src/jsonUtils/sketchImpl/createStringMeasurer');
4-
jest.mock('../../src/jsonUtils/sketchImpl/findFontName');
5-
jest.mock('../../src/jsonUtils/sketchImpl/makeImageDataFromUrl');
6-
jest.mock('../../src/jsonUtils/sketchImpl/makeSvgLayer');
2+
import * as ReactSketch from '../../src';
73

84
describe('public API', () => {
95
it('exports render', () => {

β€Ž__tests__/jest/jsonUtils/computeYogaNode.tsβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import yoga from 'yoga-layout-prebuilt';
22
import computeYogaNode from '../../../src/jsonUtils/computeYogaNode';
33
import Context from '../../../src/utils/Context';
4+
import NodeMacOSBridge from '../../../src/platformBridges/NodeMacOSBridge';
45

56
const widthAndHeightStylesStub = {
67
width: 10,
@@ -32,7 +33,7 @@ const createYogaNodes = (
3233
styles.forEach(style => {
3334
const treeNode = createTreeNode(style);
3435
const ctx = new Context();
35-
const { node } = computeYogaNode(treeNode, ctx);
36+
const { node } = computeYogaNode(treeNode, ctx, NodeMacOSBridge);
3637
node.calculateLayout(
3738
containerWidth || undefined,
3839
containerHeight || undefined,

β€Ž__tests__/jest/jsonUtils/computeYogaTree.tsβ€Ž

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import yoga from 'yoga-layout-prebuilt';
22
import computeYogaTree from '../../../src/jsonUtils/computeYogaTree';
33
import Context from '../../../src/utils/Context';
4+
import NodeMacOSBridge from '../../../src/platformBridges/NodeMacOSBridge';
45

56
const treeRootStub = {
67
type: 'artboard',
@@ -35,11 +36,11 @@ const treeRootStub = {
3536
],
3637
};
3738

38-
computeYogaTree(treeRootStub, new Context());
39+
computeYogaTree(treeRootStub, new Context(), NodeMacOSBridge);
3940

4041
describe('Compute Yoga Tree', () => {
4142
it('correctly create yoga nodes into layout tree', () => {
42-
const yogaTree = computeYogaTree(treeRootStub, new Context());
43+
const yogaTree = computeYogaTree(treeRootStub, new Context(), NodeMacOSBridge);
4344
yogaTree.calculateLayout(undefined, undefined, yoga.DIRECTION_LTR);
4445
expect(yogaTree.getComputedLayout()).toEqual({
4546
bottom: 0,

β€Ž__tests__/jest/reactTreeToFlexTree.tsβ€Ž

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import yoga from 'yoga-layout-prebuilt';
22
import computeYogaTree from '../../src/jsonUtils/computeYogaTree';
33
import Context from '../../src/utils/Context';
44
import { reactTreeToFlexTree } from '../../src/buildTree';
5+
import NodeMacOSBridge from '../../src/platformBridges/NodeMacOSBridge';
56

67
const treeRootStub = {
78
type: 'artboard',
@@ -55,7 +56,7 @@ const treeRootStub = {
5556

5657
describe('Compute Flex Tree', () => {
5758
it('correctly creates flex tree', () => {
58-
const yogaNode = computeYogaTree(treeRootStub, new Context());
59+
const yogaNode = computeYogaTree(treeRootStub, new Context(), NodeMacOSBridge);
5960
yogaNode.calculateLayout(undefined, undefined, yoga.DIRECTION_LTR);
6061
const tree = reactTreeToFlexTree(treeRootStub, yogaNode, new Context());
6162

β€Ž__tests__/jest/sharedStyles/TextStyles.tsβ€Ž

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import NodeMacOSBridge from '../../../src/platformBridges/NodeMacOSBridge';
2+
13
/* eslint-disable global-require */
24
let TextStyles;
35
let doc;
@@ -7,7 +9,8 @@ beforeEach(() => {
79
jest.resetModules();
810

911
jest.mock('../../../src/utils/getSketchVersion', () => ({
10-
getSketchVersion: jest.fn(() => 51),
12+
__esModule: true,
13+
default: jest.fn(() => '51'),
1114
}));
1215

1316
TextStyles = require('../../../src/sharedStyles/TextStyles');
@@ -16,12 +19,12 @@ beforeEach(() => {
1619

1720
jest.mock('../../../src/utils/sharedTextStyles');
1821

19-
jest.mock('../../../src/jsonUtils/sketchImpl/createStringMeasurer');
20-
jest.mock('../../../src/jsonUtils/sketchImpl/findFontName');
21-
jest.mock('../../../src/jsonUtils/sketchImpl/makeImageDataFromUrl');
22-
jest.mock('../../../src/jsonUtils/sketchImpl/makeSvgLayer');
22+
// jest.mock('../../../src/jsonUtils/sketchImpl/createStringMeasurer');
23+
// jest.mock('../../../src/jsonUtils/sketchImpl/findFontName');
24+
// jest.mock('../../../src/jsonUtils/sketchImpl/makeImageDataFromUrl');
25+
// jest.mock('../../../src/jsonUtils/sketchImpl/makeSvgLayer');
2326

24-
TextStyles = TextStyles.default;
27+
TextStyles = TextStyles.default(() => NodeMacOSBridge);
2528
sharedTextStyles = sharedTextStyles.default;
2629

2730
sharedTextStyles.setDocument = jest.fn(doc => {
@@ -115,41 +118,32 @@ describe('create', () => {
115118
});
116119

117120
it('only stores text attributes', () => {
118-
const whitelist = [
119-
'color',
120-
'fontFamily',
121-
'fontSize',
122-
'fontStyle',
123-
'fontWeight',
124-
'textShadowOffset',
125-
'textShadowRadius',
126-
'textShadowColor',
127-
'textTransform',
128-
'letterSpacing',
129-
'lineHeight',
130-
'textAlign',
131-
'writingDirection',
132-
];
133-
134-
const blacklist = ['foo', 'bar', 'baz'];
135-
136-
const input = [...whitelist, ...blacklist].reduce(
137-
(acc, key) => ({
138-
...acc,
139-
[key]: true,
140-
}),
141-
{},
142-
);
121+
const whitelist = {
122+
color: 'red',
123+
fontFamily: 'Helvetica',
124+
fontSize: 14,
125+
fontStyle: 'italic',
126+
fontWeight: 'bold',
127+
textShadowOffset: 2,
128+
textShadowRadius: 1,
129+
textShadowColor: 'black',
130+
textTransform: 'uppercase',
131+
letterSpacing: 1,
132+
lineHeight: 18,
133+
textAlign: 'left',
134+
writingDirection: 'ltr',
135+
};
143136

144-
const res = TextStyles.create({ foo: input }, { document: doc });
137+
const blacklist = { foo: 1, bar: 2, baz: 3 };
145138

139+
const res = TextStyles.create({ foo: { ...whitelist, ...blacklist } }, { document: doc });
146140
const firstStoredStyle = res[Object.keys(res)[0]].cssStyle;
147141

148-
whitelist.forEach(key => {
149-
expect(firstStoredStyle).toHaveProperty(key, true);
142+
Object.keys(whitelist).forEach(key => {
143+
expect(firstStoredStyle).toHaveProperty(key, whitelist[key]);
150144
});
151145

152-
blacklist.forEach(key => {
146+
Object.keys(blacklist).forEach(key => {
153147
expect(firstStoredStyle).not.toHaveProperty(key);
154148
});
155149
});
File renamed without changes.

β€Žsrc/jsonUtils/makeSvgLayer/index.tsβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ import isRunningInSketch from '../../utils/isRunningInSketch';
22
import sketchMakeSvgLayer from './makeSvgLayer.sketch';
33
import pureJsSketchMakeSvgLayer from './makeSvgLayer';
44

5-
export default isRunningInSketch() ? pureJsSketchMakeSvgLayer : sketchMakeSvgLayer;
5+
export default isRunningInSketch() ? sketchMakeSvgLayer : pureJsSketchMakeSvgLayer;

β€Žsrc/jsonUtils/makeSvgLayer/makeSvgLayer.tsβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export default async function makeSvgLayer(
8383
svg: string,
8484
): Promise<FileFormat.Group> {
8585
// Load the module only if it has been made available through another import.
86-
const svgModel = await import(/* webpackMode: "weak" */ '@lona/svg-model');
86+
const svgModel = (await import(/* webpackMode: "weak" */ '@lona/svg-model')).default;
8787

8888
const {
8989
data: { params, children },

0 commit comments

Comments
Β (0)