Skip to content

Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of a button.

License

Notifications You must be signed in to change notification settings

ctpcheng/spearmint

 
 

Repository files navigation

Spearmint helps developers easily create functional Accessibility/Endpoint/Puppeteer/React/Hooks/Redux/Vue/Security tests without writing any code. It dynamically converts user inputs into executable Jest test code by using DOM query selectors provided by @testing-library.

Installation

Please download spearmint from our website. Available for Mac OS and Windows.

How to use in development mode

For Mac developers

Prerequisite: Install Xcode

  1. Fork and clone this repository.
  2. npm install
  3. npm run watch
  4. npm run start-dev

For Windows developers

Prerequisite: Install Node.js globally

  1. Fork and clone this repository.
  2. npm install
  3. npm run watch
  4. npm run start-dev

Note: Windows users may also have to run Spearmint in admin mode


How it works

  1. On the initial screen, a user is prompt to login, sign up (via OAuth or standard sign-up/login), or login as a guest. Once logged in, choose your file and load your application to start creating tests.

  1. Utilize our auto-complete, drop-down options, and tooltips features to easily create arrangement, action, and assertion test statements for React and Vue; reducer, action creator, asynchronous action creator, and middleware test statements for Redux; and hooks, context, and endpoint test statements. Spearmint can save test templates for future use for logged in user (not guests).

  1. Spearmint will then convert user input to dynamically generate a test file. You can click the export icon on the nav bar to automatically save the test file in the __tests__ folder to run test or to modify in the future.

  1. Lastly click Run Test button and follow the guide on the popup and click what type of test you would like to perform.

  2. An accessibility lens has been added in the app to give developers with different mismatches various options to interact with the app.

  1. Spearmint provides security testing. The Snyk library has been utilized to ensure your application is up to snuff for various security standards and protect your application from malicious attacks. Users can now test their application for vulnerabilities including: SQL Injection, Cross-site Scripting (XSS), Hardcoded Secrets, and much more!

  1. The latest version of Spearmint adopted testing capability for Vue.js. The Vue Test Utils library has been utilized to test your Vue.js application.

New features with version 0.9.0

  • Testing capability for Vue.js

  • Github Oauth login

  • Modernized and upgraded user interface with dark mode option

  • Better user experience with draggable modals and exit buttons

  • Save test functionality for easier modification of tests

  • Cross-platform functionality (Mac OS w/ M1 chip, Mac OS w/ Intel chip, Linux/Unix)

  • Ample bug fixes


Demos

Guest login

Signup + login

Github Oauth login

Vue Test

Dark Mode + Upgraded UI/UX

Save Test Functionality

Run a security test


The Spearmint Team


Alan @alanrichardson7
Alex @apark0720
Alfred @astaiglesia
Annie @annieshinn
Ben @bkwak
Charlie @charlie-maloney
Chen(Chloe) @chloelu29
Chloe @HeyItsChloe
Cornelius @corneeltron
Dave @davefranz
Dieu @dieunity
Eric @ericgpark
Evan @Berghoer
Gabriel @bielchristo
Huy @huyqbui
Joe @josephnagy
Johnny @johnny-lim
Julie @julicious100
Justin @JIB3377
Karen @karenpinilla
Linda @lcwish
Luis @Luis-KM-Lo
Max B@mbromet
Max W @MaxWeisen
Mike @mbcoker
Mina @alsdk850
Mo @mhmaidi789
Natlyn @natlynp
Nick @nicolaspita
Owen @oweneldridge
Rachel @rachethecreator
Ruzeb @Ruzeb
Sean Y @seanyyoo
Sean H @sean-haverstock
Sharon @sharon-zhu
Sieun @sieunjang
Terence @TERR-inss
Tolan @taoantaoan
Tristen @twastell
Tyler @tytyjameson



If You Want To Contribute:

The following is a list of features + improvements for future open-source developers that the Spearmint team has either started or would like to see implemented. Or, if you have additional new ideas, feel free to implement those as well!

  • GraphQL test generation
  • Containerization with Docker
  • Exporting test files in TypeScript
  • Additional security testing functionality
  • Dry refactoring of codebase

About

Testing, simplified. || An inclusive, accessibility-first GUI for generating clean, semantic Javascript tests in only a few clicks of a button.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 58.8%
  • TypeScript 28.2%
  • SCSS 12.2%
  • Other 0.8%