Spearmint

An inclusive, accessibility-first GUI for generating clean, semantic tests ...

README

undefined

Spearmint helps developers easily create functional Accessibility, Endpoint, GraphQL, Puppeteer, React, Hooks, Redux, Svelte, Vue, and 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, Windows, and Linux.


How to use in development mode


Mac Developers: Install Xcode

Windows Developers: 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

5. Create a .env file in the root directory of the project
6. Insert the following lines of code into the .env file
  1. ```
  2. APP_DEV=true
  3. BROWSER=non
  4. SKIP_PREFLIGHT_CHECK=true
  5. MONGO_LINK=
  6. ```
7. Set MONGO_LINK to your MongoDB URI

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.

undefined

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

undefined

3.  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.

undefined


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


5. The latest version of Spearmint adopted testing capability for Svelte and GraphQL. The Svelte library has been utilized to test your Svelte application.

undefined

New features with version 0.10.0


Testing capability for Svelte components

GraphQL endpoint testing functionality

Google Oauth

Facebook Oauth

Dependency refactoring

Additional typescript component conversions

Logout button

UI/UX streamlining

Ample bug fixes

<!-- # Demos

Guest login

undefined

Signup + login

undefined

Github Oauth login

undefined

Facebook Oauth login

undefined

Google Oauth login

undefined

Vue Test

undefined

Svelte Test

undefined

GraphQL Test

undefined

Dark Mode + Upgraded UI/UX

undefined

Save Test Functionality

undefined

Run a security test

undefined


-->


The Spearmint Team



Alan @alanrichardson7 <br />

Alex @apark0720 <br />

Alfred @astaiglesia <br />

Annie @annieshinn <br />

Ben @bkwak <br />

Charlie @charlie-maloney <br />

Chen(Chloe) @chloelu29 <br />

Chloe @HeyItsChloe <br />

Chris @cptcheng <br />

Cornelius @corneeltron <br />

David @koyykdy <br />

Dave @davefranz <br />

Deriante @dsin16 <br />

Dieu @dieunity <br />

Eric @ericgpark <br />

Evan @Berghoer <br />

Gabriel @bielchristo <br />

Huy @huyqbui <br />

Joe @josephnagy <br />

Johnny @johnny-lim <br />

Judy @judysongg <br />

Julie @julicious100 <br />

Justin @JIB3377 <br />

Karen @karenpinilla <br />

Linda @lcwish <br />

Luis @Luis-KM-Lo <br />

Max B@mbromet <br />

Max W @MaxWeisen <br />

Mike @mbcoker <br />

Mina @alsdk850 <br />

Mo @mhmaidi789 <br />

Myles @mylestsutsui <br />

Natlyn @natlynp <br />

Nick @nicolaspita <br />

Owen @oweneldridge <br />

Rachel @rachethecreator <br />

Ruzeb @Ruzeb <br />

Sean Y @seanyyoo <br />

Sean H @sean-haverstock <br />

Sharon @sharon-zhu <br />

Sieun @sieunjang <br />

Terence @TERR-inss <br />

Tolan @taoantaoan <br />

Tristen @twastell <br />




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!
- Containerization with Docker
- Exporting test files in TypeScript
- Additional security testing functionality
- Dry refactoring of codebase