Files
gemigreerd-js-maker/testing/jsmaker-usecases.rkt
T
2026-06-08 12:55:08 +02:00

33 lines
864 B
Racket

#lang racket/base
(require rackunit
"../main.rkt"
"jsmaker-test-framework.rkt")
(provide usecase-tests)
(define counter-program
(string-append
(js (define (make-counter start)
(let ([value start])
(return (lambda ()
(begin
(set! value (+ value 1))
(return value)))))))
"const c = make_counter(5);\n"
"console.log(c());\n"
"console.log(c());\n"))
(define usecase-tests
(test-suite
"small use cases"
(test-case "closures and set!"
(check-js-contains? counter-program "function make_counter(start)")
(check-js-contains? counter-program "value = value + 1;")
(when (node-available?)
(check-equal? (run-js/trimmed counter-program) "6\n7")))))
(module+ test
(require rackunit/text-ui)
(run-tests usecase-tests))