All Projects → milankinen → cuic

milankinen / cuic

Licence: MIT License
Clojure UI testing with Chrome

Programming Languages

clojure
4091 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
CSS
56736 projects
HTML
75241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to cuic

ShenScript
Shen for JavaScript
Stars: ✭ 40 (+73.91%)
Mutual labels:  repl
ReplCustoms
A database of users, posts, and comments from the ReplTalk API
Stars: ✭ 17 (-26.09%)
Mutual labels:  repl
nightwatch-boilerplate
boilerplate for nightwatch.js with selenium
Stars: ✭ 16 (-30.43%)
Mutual labels:  ui-testing
malluscript
A simple,gentle,humble scripting language for mallus, based on malayalam memes.
Stars: ✭ 112 (+386.96%)
Mutual labels:  repl
aik
Frontend Playground
Stars: ✭ 43 (+86.96%)
Mutual labels:  repl
clojure
Practicalli Clojure REPL Driven Development
Stars: ✭ 40 (+73.91%)
Mutual labels:  repl
ocamline
👨🏻‍💻 Command line interface for user input
Stars: ✭ 32 (+39.13%)
Mutual labels:  repl
ptrepl
Run command as REPL with completion(based on prompt_toolkit)
Stars: ✭ 38 (+65.22%)
Mutual labels:  repl
pytezos
🐍 Python SDK & CLI for Tezos | Michelson REPL and testing framework
Stars: ✭ 93 (+304.35%)
Mutual labels:  repl
moses-smt
Dock You a Moses: Moses Statistical MT in a container
Stars: ✭ 12 (-47.83%)
Mutual labels:  repl
repl
Framework Agnostic REPL For Node.js. Used by AdonisJS
Stars: ✭ 76 (+230.43%)
Mutual labels:  repl
lambda-dti
Interpreter of the ITGL with dynamic type inference
Stars: ✭ 18 (-21.74%)
Mutual labels:  repl
repline
Haskeline wrapper for GHCi-like REPL interfaces
Stars: ✭ 98 (+326.09%)
Mutual labels:  repl
dirac-sample
An example integration of Dirac DevTools
Stars: ✭ 17 (-26.09%)
Mutual labels:  repl
ionic-docker
An ionic image for CI
Stars: ✭ 56 (+143.48%)
Mutual labels:  chrome-headless
Clojure-Sublimed
Clojure support for Sublime Text 4
Stars: ✭ 268 (+1065.22%)
Mutual labels:  repl
replay-csharp
An editable C# REPL (Read Eval Print Loop) powered by Roslyn and .NET Core
Stars: ✭ 69 (+200%)
Mutual labels:  repl
jsxt
The collection of Javascript / JScript / VBScript extensions, tools and more
Stars: ✭ 23 (+0%)
Mutual labels:  repl
ts-c99-compiler
ANSI C 16bit Compiler + NASM Assembler + Intel 8086 / 80186 + X87 emulator written entirely in TypeScript
Stars: ✭ 78 (+239.13%)
Mutual labels:  repl
await-outside
Await outside of async functions
Stars: ✭ 19 (-17.39%)
Mutual labels:  repl

CUIC

Clojure UI testing with Chrome. Special thanks to Timo L. for the awesome logo!

Build status Clojars Project cljdoc

Motivation

I needed a library for writing robust and maintainable UI tests for my work and hobby Clojure(Script) projects. The library had to run on top of the JVM to simplify test setups and enable code sharing, but without the annoying WebDriver version hassle. cuic is a response to fill that gap.

The design of the current version of cuic is the result of countless (re)written tests, hours after hours of CI test runs and endless debugging sessions, driven by the following core principles:

  • Prefer Clojure core data structures and language features to custom macros and DSLs
  • Minimal and unambiguous but easily extendable API
  • Seamless integration with clojure.test and the tooling around it
  • First class REPL usage

Show me the code!

Here's a small snippet showing how to test the classic TodoMVC app with cuic

(ns example-todomvc-tests
  (:require [clojure.test :refer :all]
            [cuic.core :as c]
            [cuic.test :refer [deftest* is* browser-test-fixture]]))

(use-fixtures
  :once
  (browser-test-fixture))

(defn todos []
  (->> (c/query ".todo-list li")
       (map c/text-content)))

(defn add-todo [text]
  (doto (c/find ".new-todo")
    (c/fill text))
  (c/press 'Enter))

(deftest* creating-new-todos
  (c/goto "http://todomvc.com/examples/react")
  (is* (= [] (todos)))
  (add-todo "Hello world!")
  (is* (= ["Hello world!"] (todos)))
  (add-todo "Tsers!")
  (is* (= ["Hello world!" "Tsers!"] (todos))))

Documentation

Each cuic function has a Clojure doc-string describing its behaviour and usage. Generated API docs and guides are also available in cljdoc.org.

Similar projects

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].