@player-ui/player
Version:
48 lines (40 loc) • 1.35 kB
text/typescript
import { describe, test, expect, beforeEach } from "vitest";
import type { DataModelWithParser } from "../../data";
import { LocalModel, withParser } from "../../data";
import { BindingParser } from "../../binding";
import { deleteDataVal, setDataVal, getDataVal } from "../evaluator-functions";
import type { ExpressionContext } from "../types";
describe("eval functions", () => {
let model: DataModelWithParser;
let context: ExpressionContext;
beforeEach(() => {
const localModel = new LocalModel();
const bindingParser = new BindingParser({
get: localModel.get,
set: localModel.set,
evaluate: () => undefined,
});
model = withParser(localModel, bindingParser.parse);
context = {
model,
evaluate: () => undefined,
};
});
test("deleteDataVal", () => {
model.set([["foo.bar", 2]]);
expect(model.get("foo.bar")).toBe(2);
deleteDataVal(context, "foo.bar");
expect(model.get("foo.bar")).toBeUndefined();
});
test("setDataVal", () => {
model.set([["foo.bar", 2]]);
expect(model.get("foo.bar")).toBe(2);
setDataVal(context, "foo.bar", 10);
expect(model.get("foo.bar")).toBe(10);
});
test("getDataVal", () => {
model.set([["foo.bar", 2]]);
expect(model.get("foo.bar")).toBe(2);
expect(getDataVal(context, "foo.bar")).toBe(2);
});
});