aboutsummaryrefslogtreecommitdiff
path: root/tests/eval.spec.ts
blob: 63062e3fb2f776982e445da1717dc1232da909dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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')
  })
})