@cycosoft/eyas

3.3.0 • Public • Published

Eyas Logo

Eyas

Feature Branch Testing Without a Server



About

Eyas leverages a packaged version of your application to provide a simple and shareable testing solution without the need to set up a server and custom domains. Regardless of your team size, you can now decrease the feedback loop for no extra cost. You can easily include PMs, designers, executives and customers in the testing process.

In practice, Eyas can shift-left your testing process by allowing full testing of feature branches before they are merged. This will increase confidence in your main branch, enable at-will deployments, reduce bugs / hotfixes / rollbacks, increase team velocity, decrease team stress, and crucially limit code freezes when "tossing the release over the wall" with QA.

Table of Contents

Features

  • 📦 Shareable: Bundle your app in a read-only archive for Windows & MacOS. No server needed.
  • 🔗 Dynamic: Simulate running from any domain.
  • 📏 Resolution: Supports standard & custom screen sizes (mobile, tablet, desktop).
  • 🕜 Time-limited: Set test expiration dates between 1 hour and 30 days.

Install

# Install the package
npm install @cycosoft/eyas --save-dev

Configuration

// <projectRoot>/.eyas.config.js
module.exports = {
  // The path to the directory containing your application files
  source: `dist`,
  // Simulate a domain for the test (accepts '' || [''] || [{ url, title }])
  domains: [/*
    { url: `dev.cycosoft.com`, title: `Development` },
    { url: `staging.cycosoft.com`, title: `Staging` },
    { url: `cycosoft.com`, title: `Production` }
  */],
  // The name of your application
  title: `My Cool Site`,
  // The version of your application that was built. Defaults to current branch name.
  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
    windows: true,
    // Build a MacOS distributable
    mac: true,
    // The number of hours from build time until the distributable expires
    expires: 168 // (range: 1-720 hours)
  }
};

Usage

# Packages the configured app to a distributable zip
npm run build-my-project && npx eyas bundle
# Generates an Eyas test database for use with the installed version of Eyas
npm run build-my-project && npx eyas db

Outputs

  • db: Creates an *.eyas file of project production output + test config (recommended)
    • 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 (e.g. internal team)
  • 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 (e.g. customers)

Tips

  • Add .eyas-* and 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:
    • Meta: Randomized ephemeral session id
    • Meta: operating system
    • Meta: Eyas version number
    • Event: app launched
    • Event: app exit modal was shown
    • Event: app closed

[Back to Top]

Package Sidebar

Install

npm i @cycosoft/eyas

Homepage

cycosoft.com

Weekly Downloads

123

Version

3.3.0

License

MIT

Unpacked Size

179 MB

Total Files

9

Last publish

Collaborators

  • cycododge