Skip to content

Commit 40e4b6f

Browse files
committed
Merge branch 'better_tests'
2 parents 5360544 + 774af37 commit 40e4b6f

File tree

113 files changed

+4471
-1081
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+4471
-1081
lines changed

.github/workflows/ci.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
test:
13+
name: Test
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v3
17+
- uses: actions/setup-node@v3
18+
with:
19+
node-version: 20
20+
cache: yarn
21+
- run: yarn install
22+
- run: yarn test

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ node_modules/
77
/lib/js/src
88
/lib/js/tests/testHelpers.js
99
npm-debug.log
10+
.yarn/install-state.gz

.yarn/releases/yarn-4.0.2.cjs

Lines changed: 893 additions & 0 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
nodeLinker: node-modules
2+
3+
yarnPath: .yarn/releases/yarn-4.0.2.cjs

lib/js/examples/dom_example.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,17 @@ Belt_Option.map(Belt_Option.flatMap(Webapi__Dom__Document.asHtmlDocument(documen
3232
return Caml_option.nullable_to_opt(prim.body);
3333
})), (function (body) {
3434
body.appendChild(el);
35-
3635
}));
3736

3837
document.createElement("div").addEventListener("mousemove", (function (e) {
3938
console.log([
4039
e.screenX,
4140
e.screenY
4241
]);
43-
4442
}));
4543

4644
function handleClick(param) {
4745
console.log("clicked");
48-
4946
}
5047

5148
window.addEventListener("click", handleClick);

lib/js/examples/image_examples.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@ function processImage(url) {
1414
var maybeImg = Curry._1(Webapi__Dom__HtmlImageElement.ofElement, e);
1515
maybeImg.src = url;
1616
maybeImg.addEventListener("load", (function ($$event) {
17-
return resolve($$event);
17+
resolve($$event);
1818
}));
1919
maybeImg.addEventListener("error", (function (error) {
20-
return reject(error);
20+
reject(error);
2121
}));
2222
var body = Belt_Option.flatMap(Webapi__Dom__Document.asHtmlDocument(document), (function (prim) {
2323
return Caml_option.nullable_to_opt(prim.body);
2424
}));
2525
body.appendChild(maybeImg);
2626
body.removeChild(maybeImg);
27-
2827
}));
2928
}
3029

@@ -33,7 +32,6 @@ var test = processImage(url).then(function ($$event) {
3332
var width = img.naturalWidth;
3433
var height = img.naturalHeight;
3534
console.log("width", width, "height", height);
36-
3735
});
3836

3937
exports.url = url;

lib/js/examples/webapi_example.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ var socket = new WebSocket("ws://localhost:8080");
55

66
socket.addEventListener("open", (function (param) {
77
socket.send("Hello Server!");
8-
98
}));
109

1110
socket.addEventListener("message", (function ($$event) {
1211
console.log("Message from server ", $$event.data);
13-
1412
}));
1513

1614
/* socket Not a pure module */
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
'use strict';
2+
3+
4+
var canvasEl = document.createElement("canvas");
5+
6+
var ctx = canvasEl.getContext("webgl");
7+
8+
ctx.clear(5);
9+
10+
ctx.clearColor(0, 1, 2, 3);
11+
12+
ctx.enable(5);
13+
14+
ctx.disable(5);
15+
16+
ctx.blendFunc(0, 1);
17+
18+
ctx.cullFace(5);
19+
20+
var buf = ctx.createBuffer();
21+
22+
ctx.deleteBuffer(buf);
23+
24+
ctx.bindBuffer(5, buf);
25+
26+
ctx.bufferData(5, new Uint16Array(5), 5);
27+
28+
ctx.bufferData(5, new Float32Array(5), 5);
29+
30+
var program = ctx.createProgram();
31+
32+
ctx.linkProgram(program);
33+
34+
ctx.useProgram(program);
35+
36+
var programlog = ctx.getProgramInfoLog(program);
37+
38+
ctx.bindAttribLocation(program, 5, "");
39+
40+
var shader = ctx.createShader(5);
41+
42+
ctx.shaderSource(shader, "");
43+
44+
ctx.compileShader(shader);
45+
46+
ctx.attachShader(program, shader);
47+
48+
var shaderlog = ctx.getShaderInfoLog(shader);
49+
50+
ctx.drawElements(0, 1, 2, 3);
51+
52+
ctx.enableVertexAttribArray(5);
53+
54+
ctx.vertexAttribPointer(0, 1, 2, false, 3, 4);
55+
56+
var loc = ctx.getAttribLocation(program, "");
57+
58+
ctx.drawArrays(0, 1, 2);
59+
60+
exports.canvasEl = canvasEl;
61+
exports.ctx = ctx;
62+
exports.buf = buf;
63+
exports.program = program;
64+
exports.programlog = programlog;
65+
exports.shader = shader;
66+
exports.shaderlog = shaderlog;
67+
exports.loc = loc;
68+
/* canvasEl Not a pure module */

lib/js/tests/Webapi/Canvas/Webapi__Canvas__Canvas2d__test.js

Lines changed: 29 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use strict';
22

3-
var List = require("rescript/lib/js/list.js");
43
var Webapi__Canvas__Canvas2d = require("../../../src/Webapi/Canvas/Webapi__Canvas__Canvas2d.js");
54

65
var canvasEl = document.createElement("canvas");
@@ -95,45 +94,23 @@ ctx.arc(1, 1, 4, 1, 3, true);
9594

9695
ctx.rect(0, 0, 10, 10);
9796

98-
ctx.isPointInPath(0, 0);
97+
var pointInPath = ctx.isPointInPath(0, 0);
9998

10099
var linearGradient = ctx.createLinearGradient(0.0, 0.0, 0.0, 0.0);
101100

102101
ctx.strokeStyle = linearGradient;
103102

104-
ctx.createRadialGradient(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
103+
var radialGradient = ctx.createRadialGradient(0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
105104

106105
linearGradient.addColorStop(0.0, "red");
107106

108-
var partial_arg = document.createElement("img");
109-
110-
List.map((function (param) {
111-
return createPattern(ctx, partial_arg, (function () {
112-
switch (param) {
113-
case "repeat" :
114-
return "repeat";
115-
case "repeatX" :
116-
return "repeat-x";
117-
case "repeatY" :
118-
return "repeat-y";
119-
case "noRepeat" :
120-
return "no-repeat";
121-
122-
}
123-
})());
124-
}), {
125-
hd: "noRepeat",
126-
tl: {
127-
hd: "repeat",
128-
tl: {
129-
hd: "repeatX",
130-
tl: {
131-
hd: "repeatY",
132-
tl: /* [] */0
133-
}
134-
}
135-
}
136-
});
107+
var noRepeatPatern = createPattern(ctx, document.createElement("img"), "no-repeat");
108+
109+
var repeatPatern = createPattern(ctx, document.createElement("img"), "repeat");
110+
111+
var repeatXPatern = createPattern(ctx, document.createElement("img"), "repeat-x");
112+
113+
var repeatYPatern = createPattern(ctx, document.createElement("img"), "repeat-y");
137114

138115
var measureText = ctx.measureText("foo");
139116

@@ -151,15 +128,19 @@ ctx.drawImage(image, 0.0, 0.0, 16.0, 16.0);
151128

152129
ctx.drawImage(image, 0.0, 0.0, 16.0, 16.0, 0.0, 0.0, 16.0, 16.0);
153130

154-
var imageData = ctx.createImageData(0.0, 0.0);
131+
var imageFromCoords = ctx.createImageData(0.0, 0.0);
132+
133+
var imageFromData = ctx.createImageData(imageFromCoords);
134+
135+
var w = imageFromCoords.width;
155136

156-
ctx.createImageData(imageData);
137+
var h = imageFromCoords.height;
157138

158-
ctx.getImageData(0.0, 0.0, 0.0, 0.0);
139+
var frameFromImage = ctx.getImageData(0.0, 0.0, 0.0, 0.0);
159140

160-
ctx.putImageData(imageData, 0.0, 0.0);
141+
ctx.putImageData(imageFromCoords, 0.0, 0.0);
161142

162-
ctx.putImageData(imageData, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
143+
ctx.putImageData(imageFromCoords, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
163144

164145
ctx.font = "10px Courier";
165146

@@ -187,10 +168,20 @@ ctx.fill(path);
187168

188169
exports.canvasEl = canvasEl;
189170
exports.ctx = ctx;
171+
exports.pointInPath = pointInPath;
190172
exports.linearGradient = linearGradient;
173+
exports.radialGradient = radialGradient;
174+
exports.noRepeatPatern = noRepeatPatern;
175+
exports.repeatPatern = repeatPatern;
176+
exports.repeatXPatern = repeatXPatern;
177+
exports.repeatYPatern = repeatYPatern;
191178
exports.measureText = measureText;
192179
exports.width = width;
193180
exports.image = image;
194-
exports.imageData = imageData;
181+
exports.imageFromCoords = imageFromCoords;
182+
exports.imageFromData = imageFromData;
183+
exports.w = w;
184+
exports.h = h;
185+
exports.frameFromImage = frameFromImage;
195186
exports.path = path;
196187
/* canvasEl Not a pure module */

lib/js/tests/Webapi/Dom/Webapi__Dom__AnimationEvent__test.js

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,50 @@ var Webapi__Dom__AnimationEvent = require("../../../src/Webapi/Dom/Webapi__Dom__
55

66
var $$event = new AnimationEvent("my-event");
77

8-
Curry._1(Webapi__Dom__AnimationEvent.eventPhase, $$event);
8+
var bubbles = $$event.bubbles;
9+
10+
var cancelable = $$event.cancelable;
11+
12+
var composed = $$event.composed;
13+
14+
var currentTarget = $$event.currentTarget;
15+
16+
var defaultPrevented = $$event.defaultPrevented;
17+
18+
var eventPhase = Curry._1(Webapi__Dom__AnimationEvent.eventPhase, $$event);
19+
20+
var target = $$event.target;
21+
22+
var timeStamp = $$event.timeStamp;
23+
24+
var type_ = $$event.type;
25+
26+
var isTrusted = $$event.isTrusted;
927

1028
$$event.preventDefault();
1129

1230
$$event.stopImmediatePropagation();
1331

1432
$$event.stopPropagation();
1533

34+
var animationName = $$event.animationName;
35+
36+
var elapsedTime = $$event.elapsedTime;
37+
38+
var pseudoElement = $$event.pseudoElement;
39+
1640
exports.$$event = $$event;
41+
exports.bubbles = bubbles;
42+
exports.cancelable = cancelable;
43+
exports.composed = composed;
44+
exports.currentTarget = currentTarget;
45+
exports.defaultPrevented = defaultPrevented;
46+
exports.eventPhase = eventPhase;
47+
exports.target = target;
48+
exports.timeStamp = timeStamp;
49+
exports.type_ = type_;
50+
exports.isTrusted = isTrusted;
51+
exports.animationName = animationName;
52+
exports.elapsedTime = elapsedTime;
53+
exports.pseudoElement = pseudoElement;
1754
/* event Not a pure module */

0 commit comments

Comments
 (0)