(add-to-load-path (dirname (current-filename))) (use-modules (e2e marionette) (e2e testing) (ice-9 regex) ((server) #:prefix server-) (srfi srfi-1)) (define (lines s) (string-split s #\newline)) (define (get-result-line client) (let ((display (get-display client))) (last (lines (string-trim-right display))))) (define server (server-start)) (define firefox (start-firefox)) (define client (client-setup)) (navigate client "http://localhost:8080") (sleep 5) (define-test preload-loads-successfully (let* ((display (get-display client)) (first-line (first (lines display)))) (assert (string-match "Loading prelude \\.+ done" first-line) (format #f "Prelude load line: ~s" first-line)))) (define-test six-seven-times-dot-cr-yields-42 (input-line client "6 7 * . CR") (let* ((result-line (get-result-line client))) (assert (string=? "42" result-line) (format #f "Result line: ~s" result-line)))) (define-test define-hello-then-run-hello-prints-message (input-line client ": HELLO .\" Hello, world!\" CR ;") (input-line client "HELLO") (let* ((result-line (get-result-line client))) (assert (string=? "Hello, world!" result-line) (format #f "Result line: ~s" result-line)))) (run-tests) (client-teardown client) (close-firefox firefox) (server-stop server)