Skip to content

Commit 93bbff3

Browse files
authored
Smart Filter custom shader blocks: add unit test for falsy default values (#16940)
…lues
1 parent 42403bd commit 93bbff3

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

packages/dev/smartFilters/test/unit/customShaderBlock.test.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,5 +163,39 @@ describe("CustomShaderBlock", () => {
163163
expect(errorFn).not.toHaveBeenCalled();
164164
});
165165
});
166+
167+
it("Should handle default float values of 0 as a valid default value", () => {
168+
const glslDefinition = `// { "smartFilterBlockType": "TestBlock", "namespace": "Bug.Repro" }
169+
// { "default" : 0.0 }
170+
uniform float testFloat;
171+
vec4 test(vec2 vUV) { // main
172+
return vec4(vUV, testFloat, 1.);
173+
}`;
174+
const blockDefinition = ImportCustomBlockDefinition(glslDefinition) as SerializedShaderBlockDefinitionV1;
175+
const customShaderBlock = CustomShaderBlock.Create(smartFilter, "TestBlock", blockDefinition);
176+
expect(customShaderBlock.inputs.length).toBe(1);
177+
expect(customShaderBlock.inputs[0].name).toBe("testFloat");
178+
expect(customShaderBlock.inputs[0].defaultRuntimeData).not.toBeNull();
179+
expect(customShaderBlock.inputs[0].defaultRuntimeData?.value).toBe(0);
180+
});
181+
182+
it("Should handle default bool values of false as a valid default value", () => {
183+
const glslDefinition = `// { "smartFilterBlockType": "TestBlock", "namespace": "Bug.Repro" }
184+
// { "default" : false }
185+
uniform bool testBool;
186+
vec4 test(vec2 vUV) { // main
187+
if (testBool) {
188+
return vec4(vUV, 1.0, 1.);
189+
} else {
190+
return vec4(vUV, 2.0, 1.);
191+
}
192+
}`;
193+
const blockDefinition = ImportCustomBlockDefinition(glslDefinition) as SerializedShaderBlockDefinitionV1;
194+
const customShaderBlock = CustomShaderBlock.Create(smartFilter, "TestBlock", blockDefinition);
195+
expect(customShaderBlock.inputs.length).toBe(1);
196+
expect(customShaderBlock.inputs[0].name).toBe("testBool");
197+
expect(customShaderBlock.inputs[0].defaultRuntimeData).not.toBeNull();
198+
expect(customShaderBlock.inputs[0].defaultRuntimeData?.value).toBe(false);
199+
});
166200
});
167201
});

0 commit comments

Comments
 (0)