flux
Version, currently 0.1.66 versions
github.com/azutoolkit/flux
Minimalist and Fast Acceptance Test
Nothing has been indexed for 0.1.6 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
flux:
github: azutoolkit/flux
version: ~> 0.1.6Then run:
shards installshard.yml
No shard.yml has been indexed for 0.1.6. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
flux
Flux makes it easy to Test web applications by simulating a Real User would interact with your web based app.
This project uses Marionette
Marionette is an automation driver for Mozilla’s Gecko engine. It can remotely control either the UI or the internal JavaScript of a Gecko platform, such as Firefox. It can control both the chrome (i.e. menus and functions) or the content (the webpage loaded inside the browsing context), giving a high level of control and ability to replicate user actions. In addition to performing actions on the browser, Marionette can also read the properties and attributes of the DOM.
If this sounds similar to Selenium/WebDriver then you’re correct! Marionette shares much of the same ethos and API as Selenium/WebDriver, with additional commands to interact with Gecko’s chrome interface. Its goal is to replicate what Selenium does for web content: to enable the tester to have the ability to send commands to remotely control a user agent.
Read more about Marionetter https://firefox-source-docs.mozilla.org/testing/marionette/Intro.html
How does it work
Marionette consists of two parts: a server which takes requests and executes them in Gecko, and a client. The client sends commands to the server and the server executes the command inside the browser.
When would I use it
If you want to perform UI tests with browser chrome or content, Marionette is the tool you’re looking for! You can use it to control either web content, or Firefox itself.
Installation
-
Add the dependency to your
shard.yml:dependencies: flux: github: azutoolkit/flux -
Run
shards install
Usage
require "flux"
require "./spec_helper"
class UserFlux < Flux
def signup
step do
visit "http://localhost:4000/register"
fill "first_name", "John"
fill "last_name", "Doe"
fill "email", "john.doe@example.com"
fill "password", "example"
fill "password_confirm", "example"
checkbox id: "terms-checkbox", checked: true
submit "submit"
end
end
end
describe "User Signup" do
user = UserFlux.new
it "User visits site" do
user.signup
# ...add assertions...
end
end
Run your tests
❯ crystal spec
[DEBUG ] - Using firefox executable at /usr/bin/firefox
[DEBUG ] - Launching browser
[DEBUG ] - Initialized a new browser instance
[DEBUG ] - Creating new session with capabilities: {acceptInsecureCerts: false, timeouts: {implicit: 30000, pageLoad: 30000, script: 30000}}
*** You are running in headless mode.
[DEBUG ] - Navigating to http://localhost:4000/register
[DEBUG ] - Executing script
[DEBUG ] - Quitting browser
[DEBUG ] - Setting browser context to Chrome
[DEBUG ] - Executing script
[DEBUG ] - Setting browser context to Content
.
Finished in 1.36 seconds
1 examples, 0 failures, 0 errors, 0 pending
Development
Help with:
- Add configurator to customize the driver
- Define more usable and meaningful helper methods for testing
- Your ideas welcome, feel free to open an issue or PR
Contributing
1. Fork it (<https://github.com/eliasjpr/flux/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
Contributors
- Elias J. Perez - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.1.6- Tagged
- Nov 23, 2021
- Commit
c41db9789f8c- Indexed
- not yet
Dependents
Repository
github.com/azutoolkit/flux
Metadata
- Created
- Aug 12, 2026
- Updated
- Sep 25, 2026
- Synced
- Sep 25, 2026
- Versions
- 6