thin-provisioning-tools/functional-tests/fmt/test-fmt-js.scm

47 lines
1.0 KiB
Scheme
Raw Normal View History

(cond-expand
(chicken
(load "fmt-js-chicken.scm"))
(else))
(cond-expand
(chicken
(use test)
(import fmt)
(import fmt-js))
(gauche
(use gauche.test)
(use text.fmt)
(use text.fmt.js)
(define test-begin test-start)
(define orig-test (with-module gauche.test test))
(define-syntax test
(syntax-rules ()
((test name expected expr)
(orig-test name expected (lambda () expr)))
((test expected expr)
(orig-test (let ((s (with-output-to-string (lambda () (write 'expr)))))
(substring s 0 (min 60 (string-length s))))
expected
(lambda () expr)))
)))
(else))
(test-begin "fmt-js")
(test "var foo = 1 + 2;\n"
(fmt #f (js-expr '(%var foo (+ 1 2)))))
(test "var foo = 1 + 2;\n"
(fmt #f (js-expr '(%begin (%var foo (+ 1 2))))))
(test "function square(x) {
return x * x;
}"
(fmt #f (js-function 'square '(x) '(* x x))))
(test "{\"foo\": [1, 2, 3], \"bar\": \"baz\"}"
(fmt #f (js-expr '(%object ("foo" . #(1 2 3)) ("bar" . "baz")))))
(test-end)