import { expect, test } from "bun:test"; import { TransformRecipe, transform } from "../transform/transform"; const transformExample: TransformRecipe = { applicableTo: `<>(<>);`, transformTo: "<> |> <>(%)", }; const code = "a(something);a(1+1);something(some_other_thing + 1 + 10 + 100); console.log(a)"; test("Test code: " + code + " on " + transformExample.applicableTo, () => { expect(transform(transformExample, code).length).toBe( "something |> a(%);1 + 1 |> a(%);some_other_thing + 1 + 10 + 100 |> something(%);console.log(a);" ); }); // Expected outcome: 3 correct matches const secondTransformExample: TransformRecipe = { applicableTo: `<>.<>(<>);`, transformTo: "c |> a.b(%);", }; const code2 = `console.log(a);something.sometingOther(b(c));some.thing(1+1); a(b)`; test( "Test code: " + code2 + " on " + secondTransformExample.applicableTo, () => { expect(transform(secondTransformExample, code2).length).toBe(3); } ); // Expected outcome: 1 correct match const thirdTransformExample: TransformRecipe = { applicableTo: `myFunction(<>)`, transformTo: `a |> myFunction(%)`, }; const code3 = `myFunction(a);otherFunction(a); myFunction.otherfunction(a)`; test( "Test code: " + code3 + " on " + thirdTransformExample.applicableTo, () => { expect(transform(thirdTransformExample, code3)).toBe(``); } );