@cycosoft/eyas

3.5.0 • Public • Published

Eyas Logo

Eyas

Simplified Hands-on Testing for Web Applications



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: Outputs eyas.json to your config.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 contain eyas.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 )

Eyas: Falconry. a young falcon or hawk taken from the nest for training.

[Back to Top]

Package Sidebar

Install

npm i @cycosoft/eyas

Weekly Downloads

101

Version

3.5.0

License

MIT

Unpacked Size

183 MB

Total Files

10

Last publish

Collaborators

  • cycododge