UNPKG

4.39 kBJavaScriptView Raw
1"use strict";
2
3var _transformSource = require("./transformSource");
4
5var _transformSource2 = _interopRequireDefault(_transformSource);
6
7function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
9test("parse correctly burn.glsl", function () {
10 var glsl = "\n// author: gre\n// license: MIT\nuniform vec3 color; // = vec3(0.9, 0.4, 0.2)\nvec4 transition (vec2 uv) {\n return mix(\n getFromColor(uv) + vec4(progress*color, 1.0),\n getToColor(uv) + vec4((1.0-progress)*color, 1.0),\n progress\n );\n}\n ";
11 expect((0, _transformSource2.default)("burn.glsl", glsl)).toMatchSnapshot();
12});
13
14test("not providing a default creates a warning", function () {
15 var glsl = "\n// Author: gre\n// License: MIT\nuniform vec3 color;\nvec4 transition (vec2 uv) {\n return mix(\n getFromColor(uv) + vec4(progress*color, 1.0),\n getToColor(uv) + vec4((1.0-progress)*color, 1.0),\n progress\n );\n}\n ";
16 var res = (0, _transformSource2.default)("burn-2.glsl", glsl);
17 expect(res.data).toMatchSnapshot();
18 expect(res.errors.filter(function (e) {
19 return e.type === "error";
20 })).toEqual([]);
21 expect(res.errors.filter(function (e) {
22 return e.type === "warn";
23 }).length).toBe(1);
24});
25
26test("other example", function () {
27 var res = (0, _transformSource2.default)("test.glsl", "\n // author: gre\n // License: MIT\n uniform vec3 color /* = vec3(0.9, 0.4, 0.2) */;\n uniform float foo; /* = 42. */\n uniform sampler2D yo;\n vec4 transition (/* weird comment in the middle */vec2 uv) {\n return mix(\n getFromColor(uv) + vec4(progress*color, 1.0),\n getToColor(uv) + vec4((1.0-progress)*color, 1.0),\n progress);\n }\n ");
28 expect(res).toMatchSnapshot();
29 expect(res.errors).toEqual([]);
30});
31
32test("must not override existing things", function () {
33 var res = (0, _transformSource2.default)("test.glsl", "\nuniform float from; /* = 42. */\nuniform float to; /* = 42. */\nvec4 transition (vec2 uv) {}\n");
34 expect(res).toMatchSnapshot();
35 expect(res.errors.length).toBeGreaterThan(0);
36});
37
38test("must define the transition function", function () {
39 var res = (0, _transformSource2.default)("test.glsl", "\n\n");
40 expect(res).toMatchSnapshot();
41 expect(res.errors.length).toBeGreaterThan(0);
42});
43
44test("must define metas", function () {
45 var res = (0, _transformSource2.default)("test.glsl", "\n vec4 transition (vec2 uv) {\n return vec4(0.0);\n }\n");
46 expect(res).toMatchSnapshot();
47 expect(res.errors.length).toBeGreaterThan(0);
48});
49
50test("simple transition function is fine", function () {
51 var res = (0, _transformSource2.default)("test.glsl", "\n // Author: gre\n // License: MIT\n vec4 transition (vec2 uv) {\n return vec4(0.0);\n }\n ");
52 expect(res).toMatchSnapshot();
53 expect(res.errors).toEqual([]);
54});
55
56test("must define uv params", function () {
57 var res = (0, _transformSource2.default)("test.glsl", "\n // Author: gre\n // License: MIT\n vec4 transition () {\n return vec4(0.0);\n }\n ");
58 expect(res).toMatchSnapshot();
59 expect(res.errors.length).toBeGreaterThan(0);
60});
61
62test("renaming param is fine", function () {
63 var res = (0, _transformSource2.default)("test.glsl", "\n // Author: gre\n // License: MIT\n vec4 transition (vec2 p) {\n return vec4(p, 1.0, 1.0);\n }\n ");
64 expect(res).toMatchSnapshot();
65 expect(res.errors).toEqual([]);
66});
67
68test("must define the correct signature", function () {
69 var res = (0, _transformSource2.default)("test.glsl", "\n // Author: gre\n // License: MIT\n void transition (vec2 uv) {}");
70 expect(res).toMatchSnapshot();
71 expect(res.errors.length).toBeGreaterThan(0);
72});
73
74test("crazy defaults", function () {
75 var res = (0, _transformSource2.default)("crazyyyy.glsl", "\n // Author: Gaetan\n // License: LGPL\n uniform int yo; // = 1\n uniform vec4 yo2; // = vec4(4.4)\n uniform vec2 yo3 /* = vec2(1.1, 2.2) */;\n uniform float a,b; // = 42.2\n uniform float c /* = 3.3*/, d /* = 5.5 */;\n vec4 transition (vec2 uv) { return vec4(0.); }");
76 expect(res.errors).toEqual([]);
77 expect(res.data.defaultParams).toEqual({
78 yo: 1,
79 yo2: [4.4, 4.4, 4.4, 4.4],
80 yo3: [1.1, 2.2],
81 a: 42.2,
82 b: 42.2,
83 c: 3.3,
84 d: 5.5
85 });
86 expect(res.data.author).toEqual("Gaetan");
87 expect(res.data.license).toEqual("LGPL");
88});
\No newline at end of file