@cycosoft/eyas
v3.5.0
Published
Simplified Hands-on Testing for Web Applications
Downloads
440
Maintainers
Readme
The Pitch
You bundle your app in any state with the CLI through one of the available methods, and your consumer gets to test your changes with the Eyas runner.
Reduce and simplify the feedback loop with any stakeholder & any team size, regardless of their technical ability. Less bugs, faster deployment cycles, reduced stress ...for free.
- 🎨 A/B Test Design Changes
- 👩💻 Allow POs to Test UX
- 🚀 Get Pre-Merge QA Sign-Off
- 🌍 Test Against Any Environment
- 📢 Get Early Customer Feedback
Table of Contents
Install
# Install the CLI
npm install @cycosoft/eyas --save-dev
Configuration
The CLI will attempt to run without a configuration file by using the values in this example .eyas.config.js
. Example overrides are provided as comments.
// <projectRoot>/.eyas.config.js
module.exports = {
// From <projectRoot>, this is the path to your production output i.e. `npm run build` output
source: `dist`,
// Simulate a domain for the test (accepts '' || [''] || [{ url, title }])
domains: [
`eyas://local.test`
/*
{ url: `dev.cycosoft.com`, title: `Development` },
{ url: `staging.cycosoft.com`, title: `Staging` },
{ url: `cycosoft.com`, title: `Production` } // Prod URLs are helpful, but under careful consideration.
*/
],
// The name of your project
title: ``,
// The version of your project Eyas will be built from. You can alternatively set it to your package.json version for example.
version: `<current-branch>.<current-commit>`,
// Additional screen sizes to test your application at
viewports: [/* { label: `iPad Pro`, width: 1024, height: 1366 } */],
// Custom items for link menu with support for getting user input
links: [/*
{ label: `Cycosoft, LLC`, url: `cycosoft.com`, external: true (open in browser) },
{ label: `Variables Demo`, url: `{testdomain}?id={int}&msg={str}&go={bool}&list={item1|item2|}` }
*/]
// File outputs
outputs: {
// Build a Windows distributable for `eyas bundle` command (auto-detected if not set)
windows: true,
// Build a MacOS distributable for `eyas bundle` command (auto-detected if not set)
mac: true,
// The number of hours from build time until the distributable expires
expires: 168 // (range: 1-720 hours)
}
};
Usage
# Outputs `eyas.json` to your `config.source` directory for deployment to a web server
npm run build-my-project && npx eyas web
# Generates an Eyas test database for use with the installed version of Eyas
npm run build-my-project && npx eyas db
# Packages the configured app to a distributable zip
npm run build-my-project && npx eyas bundle
Outputs
web
: Outputseyas.json
to yourconfig.source
directory for deployment to a web server- Requires end user to have Eyas installed
- Share a link to directory hosting the file as
eyas://branch-42.example.com/test
. Path cannot containeyas.json
, as Eyas will assume the path is a directory. - Requires a secure web server to host.
- Recommended way to best control access to your tests. (e.g. delete source or require VPN)
- View a demo at https://launch.eyas.dev/demo.eyas.dev
db
: Creates an*.eyas
file of project production output + test config- Requires end user to have Eyas installed
- Outputs to
./eyas-dist/
- About the size of the project production output
- Recommended for end-users who do frequent testing, and do not have the benefit of hosting build artifacts on a server.
bundle
: Packages project production output, test config & Eyas for each enabled platform- Does not require Eyas to be installed
- Outputs to
./eyas-dist/${title} - ${version}.${platform}.zip
- 60mb - 100mb range
- Recommended for one-off testing without installing Eyas to your local machine.
Tips
- Add
eyas-*
to your.gitignore
to prevent outputs from being committed to your repo - View documented changes at CHANGELOG.md
- While Eyas is intended to be used for testing in lower environments, testing fixes against production can be incredibly valuable when working directly with customers. It is advisable to use day-of time limits in these cases, and very importantly that your test is branched only from the commit currently in production.
The Fine Print
🆘 Support is available via ( https://github.com/cycosoft/Eyas/issues )
- Licensed under the MIT License
- View terms of use
- View privacy policy
- Logo source design by Freepik
- Analytics data collected: See METRICS.md
Eyas: Falconry. a young falcon or hawk taken from the nest for training.