aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2023-08-10 22:45:00 +0530
committerAkshay Nair <phenax5@gmail.com>2023-08-10 22:45:00 +0530
commite01cb693bc5737792e2b37abfd98d2d8f81bac4d (patch)
tree894d367e14f5a7edac5a80fb7caf9f9a84727d1e /tests
parent2102e7608b1b3634a651cb40508d2f560f3eeb05 (diff)
downloadcss-everything-e01cb693bc5737792e2b37abfd98d2d8f81bac4d.tar.gz
css-everything-e01cb693bc5737792e2b37abfd98d2d8f81bac4d.zip
feat: adds simple evaluator
Diffstat (limited to 'tests')
-rw-r--r--tests/eval.spec.ts29
-rw-r--r--tests/parser.spec.ts (renamed from tests/parse-expr.spec.ts)2
2 files changed, 30 insertions, 1 deletions
diff --git a/tests/eval.spec.ts b/tests/eval.spec.ts
new file mode 100644
index 0000000..63062e3
--- /dev/null
+++ b/tests/eval.spec.ts
@@ -0,0 +1,29 @@
+import { Dependencies, evalExpr } from '../src/eval'
+import { Expr } from '../src/parser'
+
+describe('eval', () => {
+ const deps: Dependencies = {
+ addClass: jest.fn(),
+ removeClass: jest.fn(),
+ }
+
+ it('should add classes', async () => {
+ await evalExpr(Expr.Call({
+ name: 'add-class',
+ args: [ Expr.Identifier('element-id'), Expr.LiteralString('class-name') ],
+ }), deps)
+
+ expect(deps.addClass).toHaveBeenCalledTimes(1)
+ expect(deps.addClass).toHaveBeenCalledWith('element-id', 'class-name')
+ })
+
+ it('should add classes', async () => {
+ await evalExpr(Expr.Call({
+ name: 'remove-class',
+ args: [ Expr.Identifier('element-id'), Expr.LiteralString('class-name') ],
+ }), deps)
+
+ expect(deps.removeClass).toHaveBeenCalledTimes(1)
+ expect(deps.removeClass).toHaveBeenCalledWith('element-id', 'class-name')
+ })
+})
diff --git a/tests/parse-expr.spec.ts b/tests/parser.spec.ts
index f873464..48c398c 100644
--- a/tests/parse-expr.spec.ts
+++ b/tests/parser.spec.ts
@@ -1,4 +1,4 @@
-import { Expr, parse } from '../src/parse-expr'
+import { Expr, parse } from '../src/parser'
describe('parser', () => {
it('should parse function call', () => {