import { containsVariable, assignModelProperties } from "../variable"; describe("containsVariable", function() { describe("when checking if a string contains a variable", function() { it("should find it with $var syntax", function() { var contains = containsVariable("this.$test.filters", "test"); expect(contains).toBe(true); }); it("should not find it if only part matches with $var syntax", function() { var contains = containsVariable("this.$serverDomain.filters", "server"); expect(contains).toBe(false); }); it("should find it if it ends with variable and passing multiple test strings", function() { var contains = containsVariable( "show field keys from $pgmetric", "test string2", "pgmetric" ); expect(contains).toBe(true); }); it("should find it with [[var]] syntax", function() { var contains = containsVariable("this.[[test]].filters", "test"); expect(contains).toBe(true); }); it("should find it when part of segment", function() { var contains = containsVariable("metrics.$env.$group-*", "group"); expect(contains).toBe(true); }); it("should find it its the only thing", function() { var contains = containsVariable("$env", "env"); expect(contains).toBe(true); }); it("should be able to pass in multiple test strings", function() { var contains = containsVariable("asd", "asd2.$env", "env"); expect(contains).toBe(true); }); }); }); describe("assignModelProperties", function() { it("only set properties defined in defaults", function() { var target: any = { test: "asd" }; assignModelProperties(target, { propA: 1, propB: 2 }, { propB: 0 }); expect(target.propB).toBe(2); expect(target.test).toBe("asd"); }); it("use default value if not found on source", function() { var target: any = { test: "asd" }; assignModelProperties(target, { propA: 1, propB: 2 }, { propC: 10 }); expect(target.propC).toBe(10); }); });