wyreframe 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +692 -0
  2. package/README.md +65 -5
  3. package/package.json +8 -7
  4. package/src/index.ts +425 -0
  5. package/src/renderer/Renderer.gen.tsx +49 -0
  6. package/src/renderer/Renderer.mjs +41 -1
  7. package/src/renderer/Renderer.res +78 -0
  8. package/src/test/Expect.mjs +9 -0
  9. package/src/parser/Core/__tests__/Bounds_test.mjs +0 -326
  10. package/src/parser/Core/__tests__/Bounds_test.res +0 -412
  11. package/src/parser/Core/__tests__/Grid_test.mjs +0 -322
  12. package/src/parser/Core/__tests__/Grid_test.res +0 -319
  13. package/src/parser/Core/__tests__/Types_test.mjs +0 -614
  14. package/src/parser/Core/__tests__/Types_test.res +0 -650
  15. package/src/parser/Detector/__tests__/BoxTracer_test.mjs +0 -70
  16. package/src/parser/Detector/__tests__/BoxTracer_test.res +0 -92
  17. package/src/parser/Detector/__tests__/HierarchyBuilder_test.mjs +0 -489
  18. package/src/parser/Detector/__tests__/HierarchyBuilder_test.res +0 -849
  19. package/src/parser/Detector/__tests__/ShapeDetector_test.mjs +0 -377
  20. package/src/parser/Detector/__tests__/ShapeDetector_test.res +0 -563
  21. package/src/parser/Interactions/__tests__/InteractionMerger_test.mjs +0 -576
  22. package/src/parser/Interactions/__tests__/InteractionMerger_test.res +0 -646
  23. package/src/parser/Scanner/__tests__/Grid_manual.mjs +0 -214
  24. package/src/parser/Scanner/__tests__/Grid_manual.res +0 -141
  25. package/src/parser/Semantic/Elements/__tests__/ButtonParser_test.mjs +0 -189
  26. package/src/parser/Semantic/Elements/__tests__/ButtonParser_test.res +0 -257
  27. package/src/parser/Semantic/Elements/__tests__/CheckboxParser_test.mjs +0 -202
  28. package/src/parser/Semantic/Elements/__tests__/CheckboxParser_test.res +0 -250
  29. package/src/parser/Semantic/Elements/__tests__/CodeTextParser_manual.mjs +0 -293
  30. package/src/parser/Semantic/Elements/__tests__/CodeTextParser_manual.res +0 -134
  31. package/src/parser/Semantic/Elements/__tests__/InputParser_test.mjs +0 -253
  32. package/src/parser/Semantic/Elements/__tests__/InputParser_test.res +0 -304
  33. package/src/parser/Semantic/Elements/__tests__/LinkParser_test.mjs +0 -289
  34. package/src/parser/Semantic/Elements/__tests__/LinkParser_test.res +0 -402
  35. package/src/parser/Semantic/Elements/__tests__/TextParser_test.mjs +0 -149
  36. package/src/parser/Semantic/Elements/__tests__/TextParser_test.res +0 -167
  37. package/src/parser/Semantic/__tests__/ASTBuilder_test.mjs +0 -187
  38. package/src/parser/Semantic/__tests__/ASTBuilder_test.res +0 -192
  39. package/src/parser/Semantic/__tests__/ParserRegistry_test.mjs +0 -154
  40. package/src/parser/Semantic/__tests__/ParserRegistry_test.res +0 -191
  41. package/src/parser/Semantic/__tests__/SemanticParser_integration_test.mjs +0 -768
  42. package/src/parser/Semantic/__tests__/SemanticParser_integration_test.res +0 -1069
  43. package/src/parser/Semantic/__tests__/SemanticParser_manual.mjs +0 -1329
  44. package/src/parser/Semantic/__tests__/SemanticParser_manual.res +0 -544
  45. package/src/parser/__tests__/GridScanner_integration.test.mjs +0 -632
  46. package/src/parser/__tests__/GridScanner_integration.test.res +0 -816
  47. package/src/parser/__tests__/Performance.test.mjs +0 -244
  48. package/src/parser/__tests__/Performance.test.res +0 -371
  49. package/src/parser/__tests__/PerformanceFixtures.mjs +0 -200
  50. package/src/parser/__tests__/PerformanceFixtures.res +0 -284
  51. package/src/parser/__tests__/WyreframeParser_integration.test.mjs +0 -770
  52. package/src/parser/__tests__/WyreframeParser_integration.test.res +0 -1008
  53. package/src/parser/__tests__/fixtures/alignment-test.txt +0 -9
  54. package/src/parser/__tests__/fixtures/all-elements.txt +0 -16
  55. package/src/parser/__tests__/fixtures/login-scene.txt +0 -17
  56. package/src/parser/__tests__/fixtures/multi-scene.txt +0 -25
  57. package/src/parser/__tests__/fixtures/nested-boxes.txt +0 -15
  58. package/src/parser/__tests__/fixtures/simple-box.txt +0 -5
  59. package/src/parser/__tests__/fixtures/with-dividers.txt +0 -14
@@ -1,289 +0,0 @@
1
- // Generated by ReScript, PLEASE EDIT WITH CARE
2
-
3
- import * as Types from "../../../Core/Types.mjs";
4
- import * as Vitest from "rescript-vitest/src/Vitest.mjs";
5
- import * as LinkParser from "../LinkParser.mjs";
6
-
7
- Vitest.describe("LinkParser", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
8
- let testPosition = Types.Position.make(5, 10);
9
- let testBounds = {
10
- top: 0,
11
- left: 0,
12
- bottom: 10,
13
- right: 40
14
- };
15
- Vitest.describe("canParse", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
16
- Vitest.test("returns true for valid quoted text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"Login\"")).toBe(true));
17
- Vitest.test("returns true for quoted text with spaces", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"Sign Up Here\"")).toBe(true));
18
- Vitest.test("returns true for quoted text with numbers", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"Page 123\"")).toBe(true));
19
- Vitest.test("returns true for quoted text with special characters", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"Home - Main Page\"")).toBe(true));
20
- Vitest.test("returns false for text without quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("Login")).toBe(false));
21
- Vitest.test("returns false for text with only opening quote", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"Login")).toBe(false));
22
- Vitest.test("returns false for text with only closing quote", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("Login\"")).toBe(false));
23
- Vitest.test("returns false for empty quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("\"\"")).toBe(false));
24
- Vitest.test("returns false for button syntax", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("[ Submit ]")).toBe(false));
25
- Vitest.test("returns false for input syntax", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.canParse("#username")).toBe(false));
26
- });
27
- Vitest.describe("parse", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
28
- Vitest.describe("valid links", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
29
- Vitest.test("parses simple quoted text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
30
- let result = LinkParser.parse("\"Login\"", testPosition, testBounds);
31
- if (result === undefined) {
32
- return t.expect(true).toBe(false);
33
- }
34
- if (result.TAG !== "Link") {
35
- return t.expect(true).toBe(false);
36
- }
37
- t.expect(result.id).toBe("login");
38
- t.expect(result.text).toBe("Login");
39
- t.expect(result.position).toEqual(testPosition);
40
- t.expect(result.align).toBe("Left");
41
- });
42
- Vitest.test("parses quoted text with spaces", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
43
- let result = LinkParser.parse("\"Sign Up Here\"", testPosition, testBounds);
44
- if (result === undefined) {
45
- return t.expect(true).toBe(false);
46
- }
47
- if (result.TAG !== "Link") {
48
- return t.expect(true).toBe(false);
49
- }
50
- t.expect(result.id).toBe("sign-up-here");
51
- t.expect(result.text).toBe("Sign Up Here");
52
- });
53
- Vitest.test("parses quoted text with numbers", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
54
- let result = LinkParser.parse("\"Page 123\"", testPosition, testBounds);
55
- if (result === undefined) {
56
- return t.expect(true).toBe(false);
57
- }
58
- if (result.TAG !== "Link") {
59
- return t.expect(true).toBe(false);
60
- }
61
- t.expect(result.id).toBe("page-123");
62
- t.expect(result.text).toBe("Page 123");
63
- });
64
- Vitest.test("parses quoted text with hyphens", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
65
- let result = LinkParser.parse("\"Home-Page\"", testPosition, testBounds);
66
- if (result === undefined) {
67
- return t.expect(true).toBe(false);
68
- }
69
- if (result.TAG !== "Link") {
70
- return t.expect(true).toBe(false);
71
- }
72
- t.expect(result.id).toBe("home-page");
73
- t.expect(result.text).toBe("Home-Page");
74
- });
75
- Vitest.test("parses quoted text with special characters", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
76
- let result = LinkParser.parse("\"Contact Us!\"", testPosition, testBounds);
77
- if (result === undefined) {
78
- return t.expect(true).toBe(false);
79
- }
80
- if (result.TAG !== "Link") {
81
- return t.expect(true).toBe(false);
82
- }
83
- t.expect(result.id).toBe("contact-us");
84
- t.expect(result.text).toBe("Contact Us!");
85
- });
86
- Vitest.test("parses quoted text with multiple words", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
87
- let result = LinkParser.parse("\"Learn More About Our Services\"", testPosition, testBounds);
88
- if (result === undefined) {
89
- return t.expect(true).toBe(false);
90
- }
91
- if (result.TAG !== "Link") {
92
- return t.expect(true).toBe(false);
93
- }
94
- t.expect(result.id).toBe("learn-more-about-our-services");
95
- t.expect(result.text).toBe("Learn More About Our Services");
96
- });
97
- Vitest.test("parses link in context with surrounding text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
98
- let result = LinkParser.parse("Click \"Here\" to continue", testPosition, testBounds);
99
- if (result === undefined) {
100
- return t.expect(true).toBe(false);
101
- }
102
- if (result.TAG !== "Link") {
103
- return t.expect(true).toBe(false);
104
- }
105
- t.expect(result.id).toBe("here");
106
- t.expect(result.text).toBe("Here");
107
- });
108
- });
109
- Vitest.describe("escaped quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
110
- Vitest.test("handles escaped quotes within link text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
111
- let result = LinkParser.parse("\"Say \\\"Hello\\\"\"", testPosition, testBounds);
112
- if (result !== undefined && result.TAG === "Link") {
113
- return t.expect(result.text).toBe("Say \"Hello\"");
114
- } else {
115
- return t.expect(true).toBe(false);
116
- }
117
- });
118
- Vitest.test("handles multiple escaped quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
119
- let result = LinkParser.parse("\"\\\"Quote\\\" and \\\"Unquote\\\"\"", testPosition, testBounds);
120
- if (result !== undefined && result.TAG === "Link") {
121
- return t.expect(result.text).toBe("\"Quote\" and \"Unquote\"");
122
- } else {
123
- return t.expect(true).toBe(false);
124
- }
125
- });
126
- });
127
- Vitest.describe("empty and whitespace text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
128
- Vitest.test("returns None for empty quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
129
- let result = LinkParser.parse("\"\"", testPosition, testBounds);
130
- t.expect(result).toBe(undefined);
131
- });
132
- Vitest.test("returns None for quotes with only whitespace", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
133
- let result = LinkParser.parse("\" \"", testPosition, testBounds);
134
- t.expect(result).toBe(undefined);
135
- });
136
- Vitest.test("returns None for quotes with only tabs", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
137
- let result = LinkParser.parse("\"\t\t\"", testPosition, testBounds);
138
- t.expect(result).toBe(undefined);
139
- });
140
- Vitest.test("returns None for quotes with only newlines", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
141
- let result = LinkParser.parse("\"\n\n\"", testPosition, testBounds);
142
- t.expect(result).toBe(undefined);
143
- });
144
- });
145
- Vitest.describe("invalid patterns", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
146
- Vitest.test("returns None for text without quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
147
- let result = LinkParser.parse("Login", testPosition, testBounds);
148
- t.expect(result).toBe(undefined);
149
- });
150
- Vitest.test("returns None for text with only opening quote", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
151
- let result = LinkParser.parse("\"Login", testPosition, testBounds);
152
- t.expect(result).toBe(undefined);
153
- });
154
- Vitest.test("returns None for text with only closing quote", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
155
- let result = LinkParser.parse("Login\"", testPosition, testBounds);
156
- t.expect(result).toBe(undefined);
157
- });
158
- Vitest.test("returns None for button syntax", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
159
- let result = LinkParser.parse("[ Submit ]", testPosition, testBounds);
160
- t.expect(result).toBe(undefined);
161
- });
162
- Vitest.test("returns None for input syntax", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
163
- let result = LinkParser.parse("#username", testPosition, testBounds);
164
- t.expect(result).toBe(undefined);
165
- });
166
- });
167
- Vitest.describe("edge cases", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
168
- Vitest.test("handles single character link", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
169
- let result = LinkParser.parse("\"A\"", testPosition, testBounds);
170
- if (result === undefined) {
171
- return t.expect(true).toBe(false);
172
- }
173
- if (result.TAG !== "Link") {
174
- return t.expect(true).toBe(false);
175
- }
176
- t.expect(result.id).toBe("a");
177
- t.expect(result.text).toBe("A");
178
- });
179
- Vitest.test("handles very long link text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
180
- let longText = "This is a very long link text that spans multiple words and contains various characters";
181
- let result = LinkParser.parse(`"` + longText + `"`, testPosition, testBounds);
182
- if (result !== undefined && result.TAG === "Link") {
183
- return t.expect(result.text).toBe(longText);
184
- } else {
185
- return t.expect(true).toBe(false);
186
- }
187
- });
188
- Vitest.test("preserves case in link text", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
189
- let result = LinkParser.parse("\"CamelCaseLink\"", testPosition, testBounds);
190
- if (result !== undefined && result.TAG === "Link") {
191
- return t.expect(result.text).toBe("CamelCaseLink");
192
- } else {
193
- return t.expect(true).toBe(false);
194
- }
195
- });
196
- Vitest.test("converts uppercase to lowercase in ID", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
197
- let result = LinkParser.parse("\"UPPERCASE LINK\"", testPosition, testBounds);
198
- if (result !== undefined && result.TAG === "Link") {
199
- return t.expect(result.id).toBe("uppercase-link");
200
- } else {
201
- return t.expect(true).toBe(false);
202
- }
203
- });
204
- Vitest.test("handles consecutive spaces in ID generation", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
205
- let result = LinkParser.parse("\"Multiple Spaces\"", testPosition, testBounds);
206
- if (result !== undefined && result.TAG === "Link") {
207
- return t.expect(result.id).toBe("multiple-spaces");
208
- } else {
209
- return t.expect(true).toBe(false);
210
- }
211
- });
212
- });
213
- });
214
- Vitest.describe("slugify", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
215
- Vitest.test("converts text to lowercase", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("HELLO WORLD")).toBe("hello-world"));
216
- Vitest.test("replaces spaces with hyphens", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("hello world")).toBe("hello-world"));
217
- Vitest.test("removes special characters", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("hello! world?")).toBe("hello-world"));
218
- Vitest.test("removes consecutive hyphens", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("hello---world")).toBe("hello-world"));
219
- Vitest.test("trims leading and trailing hyphens", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("-hello-world-")).toBe("hello-world"));
220
- Vitest.test("handles empty string", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("")).toBe(""));
221
- Vitest.test("handles only special characters", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("!!!###")).toBe(""));
222
- Vitest.test("preserves numbers", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("Page 123")).toBe("page-123"));
223
- Vitest.test("handles mixed alphanumeric", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.slugify("Test123Page")).toBe("test123page"));
224
- });
225
- Vitest.describe("unescapeQuotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
226
- Vitest.test("unescapes escaped quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.unescapeQuotes("Say \\\"Hello\\\"")).toBe("Say \"Hello\""));
227
- Vitest.test("handles multiple escaped quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.unescapeQuotes("\\\"A\\\" and \\\"B\\\"")).toBe("\"A\" and \"B\""));
228
- Vitest.test("returns unchanged text without escaped quotes", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.unescapeQuotes("Hello World")).toBe("Hello World"));
229
- Vitest.test("handles empty string", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => t.expect(LinkParser.unescapeQuotes("")).toBe(""));
230
- });
231
- Vitest.describe("make", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
232
- Vitest.test("creates parser with priority 80", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
233
- let parser = LinkParser.make();
234
- t.expect(parser.priority).toBe(80);
235
- });
236
- Vitest.test("creates parser with canParse function", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
237
- let parser = LinkParser.make();
238
- t.expect(parser.canParse("\"Link\"")).toBe(true);
239
- });
240
- Vitest.test("creates parser with parse function", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
241
- let parser = LinkParser.make();
242
- let result = parser.parse("\"Link\"", testPosition, testBounds);
243
- if (result !== undefined && result.TAG === "Link") {
244
- return;
245
- } else {
246
- return t.expect(true).toBe(false);
247
- }
248
- });
249
- });
250
- Vitest.describe("integration", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, () => {
251
- Vitest.test("parses link within box content", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
252
- let result = LinkParser.parse("Click \"here\" for details", testPosition, testBounds);
253
- if (result === undefined) {
254
- return t.expect(true).toBe(false);
255
- }
256
- if (result.TAG !== "Link") {
257
- return t.expect(true).toBe(false);
258
- }
259
- let position = result.position;
260
- t.expect(result.id).toBe("here");
261
- t.expect(result.text).toBe("here");
262
- t.expect(position.row).toBe(5);
263
- t.expect(position.col).toBe(10);
264
- });
265
- Vitest.test("distinguishes link from button syntax", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
266
- let linkResult = LinkParser.parse("\"Submit\"", testPosition, testBounds);
267
- let buttonResult = LinkParser.parse("[ Submit ]", testPosition, testBounds);
268
- if (linkResult !== undefined && linkResult.TAG === "Link" && buttonResult === undefined) {
269
- return;
270
- }
271
- t.expect(true).toBe(false);
272
- });
273
- Vitest.test("handles position information correctly", undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, t => {
274
- let customPos = Types.Position.make(20, 35);
275
- let result = LinkParser.parse("\"Test\"", customPos, testBounds);
276
- if (result === undefined) {
277
- return t.expect(true).toBe(false);
278
- }
279
- if (result.TAG !== "Link") {
280
- return t.expect(true).toBe(false);
281
- }
282
- let position = result.position;
283
- t.expect(position.row).toBe(20);
284
- t.expect(position.col).toBe(35);
285
- });
286
- });
287
- });
288
-
289
- /* Not a pure module */