Skip to content

Commit

Permalink
Merge pull request #119 from oslabs-beta/master
Browse files Browse the repository at this point in the history
Merging changes from oslabs-beta to open-source-labs for final spearmint changes
  • Loading branch information
mylestsutsui authored Apr 28, 2022
2 parents 09789e0 + 4bb4647 commit c06c3b7
Show file tree
Hide file tree
Showing 97 changed files with 4,393 additions and 40,827 deletions.
3 changes: 3 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
APP_DEV=true
BROWSER=non
SKIP_PREFLIGHT_CHECK=true
97 changes: 54 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,34 @@
![](/public/spearmintbg.jpg)
![](/public/spearmint.png)

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.
Spearmint helps developers easily create functional Accessibility/Endpoint/GraphQL/Puppeteer/React/Hooks/Redux/Svelte/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](https://www.spearmintjs.com/). Available for Mac OS and Windows.
Please download spearmint from our [website](https://www.spearmintjs.com/). Available for Mac OS, Windows, and Linux.


# How to use in development mode

### For Mac developers
**Mac Developers**: Install Xcode

**Prerequisite**: Install Xcode
**Windows Developers**: Install Node.js globally

1. Fork and clone this repository.
2. ```npm install```
3. ```npm run watch```
3. ```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```
3. ```npm run start-dev```
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
```
APP_DEV=true
BROWSER=non
SKIP_PREFLIGHT_CHECK=true
MONGO_LINK=
```
7. Set MONGO_LINK to your MongoDB URI


<br>

Expand All @@ -39,52 +38,48 @@ Note: Windows users may also have to run Spearmint in admin mode

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.

![](/public/homePage.gif)
![](/public/darkModeLogin.gif)

2. 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).
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).

![](/public/dropdown.png)
![](/public/testingModal.png)

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.

![](/public/saveTest.png)
![](/public/saveTest.png)


4. Lastly click **Run Test** button and follow the guide on the popup and click what type of test you would like to perform.
![](/public/runTest.png)

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

![](/public/AccLens_Demo.gif)
5. The latest version of Spearmint adopted testing capability for Svelte and GraphQL. The [Svelte](https://testing-library.com/docs/svelte-testing-library/intro/) library has been utilized to test your Svelte application.

6. Spearmint provides security testing. The [Snyk](https://snyk.io/) 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!
![](/public/svelte.gif)

![](/public/demos/snyk-test-app.gif)
# New features with version 0.10.0

7. The latest version of Spearmint adopted testing capability for Vue.js. The [Vue Test Utils](https://vue-test-utils.vuejs.org/) library has been utilized to test your Vue.js application.
* Testing capability for Svelte components

![](/public/vueTest.png)
* GraphQL endpoint testing functionality

# New features with version 0.9.0
* Google Oauth

* Testing capability for Vue.js
* Facebook Oauth

* Github Oauth login
* Dependency refactoring

* Modernized and upgraded user interface with dark mode option
* Additional typescript component conversions

* Better user experience with draggable modals and exit buttons
* Logout button

* Save test functionality for easier modification of tests

* Cross-platform functionality (Mac OS w/ M1 chip, Mac OS w/ Intel chip, Linux/Unix)
* UI/UX streamlining

* Ample bug fixes

<br>

# Demos
<!-- # Demos
### Guest login
![](/public/demos/guest-login.gif)
Expand All @@ -95,9 +90,21 @@ Users can now test their application for vulnerabilities including: SQL Injectio
### Github Oauth login
![](/public/demos/oauth.gif)
### Facebook Oauth login
![](/public/demos/oauth2.gif)
### Google Oauth login
![](/public/demos/oauth3.gif)
### Vue Test
![](/public/demos/vuetest.gif)
### Svelte Test
![](/public/demos/sveltetest.gif)
### GraphQL Test
![](/public/demos/graphqltest.gif)
### Dark Mode + Upgraded UI/UX
![](/public/darkMode.gif)
Expand All @@ -107,7 +114,7 @@ Users can now test their application for vulnerabilities including: SQL Injectio
### Run a security test
![](/public/demos/snyk-auth-testdep.gif)
<br>
<br> -->


# The Spearmint Team
Expand All @@ -121,15 +128,19 @@ Users can now test their application for vulnerabilities including: SQL Injectio
> Charlie [@charlie-maloney](https://github.com/charlie-maloney) <br />
> Chen(Chloe) [@chloelu29](https://github.com/chloelu29) <br />
> Chloe [@HeyItsChloe](https://github.com/HeyItsChloe) <br />
> Cornelius [@corneeltron](https://github.com/corneeltron) <br />
> Chris [@cptcheng](https://github.com/cptcheng) <br />
> Cornelius [@corneeltron](https://github.com/corneeltron) <br />
> David [@koyykdy](https://github.com/koyykdy) <br />
> Dave [@davefranz](https://github.com/davefranz) <br />
> Deriante [@dsin16](https://github.com/dsin16) <br />
> Dieu [@dieunity](https://github.com/dieunity) <br />
> Eric [@ericgpark](https://github.com/ericgpark) <br />
> Evan [@Berghoer](https://github.com/Berghoer) <br />
> Gabriel [@bielchristo](https://github.com/bielchristo) <br />
> Huy [@huyqbui](https://github.com/huyqbui)<br />
> Huy [@huyqbui](https://github.com/huyqbui) <br />
> Joe [@josephnagy](https://github.com/Josephnagy) <br />
> Johnny [@johnny-lim](https://github.com/johnny-lim) <br />
> Judy [@judysongg](https://github.com/judysongg) <br />
> Julie [@julicious100](https://github.com/julicious100) <br />
> Justin [@JIB3377](https://github.com/JIB3377) <br />
> Karen [@karenpinilla](https://github.com/karenpinilla) <br />
Expand All @@ -138,14 +149,15 @@ Users can now test their application for vulnerabilities including: SQL Injectio
> Max B[@mbromet](https://github.com/mbromet) <br />
> Max W [@MaxWeisen](https://github.com/MaxWeisen) <br />
> Mike [@mbcoker](https://github.com/mbcoker) <br />
> Mina [@alsdk850](https://github.com/alsdk850)<br />
> Mina [@alsdk850](https://github.com/alsdk850) <br />
> Mo [@mhmaidi789](https://github.com/mhmaidi789) <br />
> Myles [@mylestsutsui](https://github.com/mylestsutsui) <br />
> Natlyn [@natlynp](https://github.com/natlynp) <br />
> Nick [@nicolaspita](https://github.com/nicolaspita) <br />
> Owen [@oweneldridge](https://github.com/oweneldridge) <br />
> Rachel [@rachethecreator](https://github.com/rachethecreator) <br />
> Ruzeb [@Ruzeb](https://github.com/Ruzeb) <br />
> Sean Y [@seanyyoo](https://github.com/seanyyoo)<br />
> Sean Y [@seanyyoo](https://github.com/seanyyoo) <br />
> Sean H [@sean-haverstock](https://github.com/Sean-Haverstock) <br />
> Sharon [@sharon-zhu](https://github.com/sharon-zhu) <br />
> Sieun [@sieunjang](https://github.com/sieunjang) <br />
Expand All @@ -159,7 +171,6 @@ Users can now test their application for vulnerabilities including: SQL Injectio

# 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
Expand Down
Loading

0 comments on commit c06c3b7

Please sign in to comment.