Skip to content

Commit c463d04

Browse files
authored
Merge pull request #106 from oslabs-beta/staging
Merging LA42 Spearmint with OS Labs Spearmint v0.6.0 Release
2 parents 85d86a1 + bb23c55 commit c463d04

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1383
-457
lines changed

.eslintrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"rules": {
77
"arrow-body-style": "off",
88
"no-plusplus": "off",
9-
"no-param-reassign": "off"
9+
"no-param-reassign": "off",
10+
"linebreak-style": "off"
1011
},
1112
"env": {
1213
"jest": true,

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
# production
1212
/build
13+
/dist
1314

1415
# misc
1516
.DS_Store

README.md

Lines changed: 46 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -2,80 +2,67 @@
22

33
Spearmint helps developers easily create functional React/Redux/Endpoint/Paint Timing tests without writing any code. It dynamically converts user inputs into executable Jest test code by using DOM query selectors provided by @testing-library.
44

5-
# How to use
5+
# Installation
6+
Please download spearmint from our [website](https://www.spearmintjs.com/). Available for Mac OS, Windows and Linux.
67

7-
Download spearmint @ spearmintjs.com. Available for Mac OS and Windows.
88

9-
<br>
9+
# How to use in development mode
1010

11-
### React Testing
12-
<hr>
13-
To run React tests generated by spearmint, install the following in your dev dependencies.
11+
### For Mac developers
1412

15-
npm i -D jest @testing-library/jest-dom @testing-library/react test-data-bot
13+
**Prerequisite**: Install Xcode
1614

17-
To run Redux tests generated by spearmint, install the following in your dev dependencies, in addition to your React test installations above.
15+
First install
16+
1. Fork and clone this repository.
17+
2. ```npm run install-once```
18+
3. ```npm run start```
1819

19-
npm i -D redux-mock-store redux-thunk fetch-mock
20+
***
2021

21-
To run Hooks / Context tests generated by spearmint, install the following in your dev dependencies, in addition to your React test installations above.
22+
### For Windows developers
2223

23-
npm i -D @testing-library/react-hooks
24+
**Prerequisite**: Install Python and Microsoft C++ Build Tools.
2425

25-
<br>
26-
27-
### Endpoint Testing
28-
<hr>
29-
To run Endpoint tests generated by spearmint, install the following in your dev dependencies.
26+
In an Administrator PowerShell run the following commands: <br />
27+
```choco install python visualcpp-build-tools -y``` <br />
28+
```npm config set msvs_version 2017```
29+
30+
1. Fork and clone this repository.
31+
2. ```npm run install-once```
32+
3. ```npm run start-windows```
3033

31-
npm i -D jest supertest
3234

3335
<br>
3436

35-
### Puppeteer Testing
36-
<hr>
37-
To run Puppeteer tests generated by spearmint, install the following in your dev dependencies.
3837

39-
npm i -D jest puppeteer
38+
# How it works
4039

4140

42-
<br>
43-
44-
### Accessiblity Testing
45-
<hr>
41+
1. On the initial screen, load your application to start creating tests.
4642

47-
To run Accessibility tests generated by spearmint on HTML, install the following in your dev dependencies.
43+
![](/public/mainPage.png)
4844

49-
npm i -D axe-core regenerator-runtime jest
45+
2. Utilize our auto-complete, drop-down options, and tooltips features to easily create arrangement, action, and assertion test statements for React; reducer, action creator, asynchronous action creator, and middleware test statements for Redux; and hooks, context, and endpoint test statements.
5046

51-
To run Accessibility tests generated by spearmint on React Components, install the following in your dev dependencies.
47+
![](/public/generateTest.png)
5248

53-
npm i -D axe-core regenerator-runtime jest enzyme enzyme-adapter-react-16
49+
3. Spearmint will then convert user input to dynamically generate a test file, which you can click export icon on the left nav bar to automatically save the test file in the **\_\_tests\_\_** folder.
5450

55-
To run Accessibility tests generated by spearmint on URL's with Puppeteer, install the following in your dev dependencies.
5651

57-
npm i -D axe-core puppeteer
52+
4. Lastly click **Run Test** button and follow the guide and click what type of test you would like to perform.
53+
![](/public/runTest.png)
5854

55+
5. Accessibility lens have been added in the app to give developers with different mismatches various options to interact with the app.
56+
![](/public/AccLens_Demo.gif)
5957

6058
<br>
6159

62-
# How it works
63-
64-
1. On the initial screen, enter the URL of your project and load your application to start creating tests.
65-
66-
![](https://lh4.googleusercontent.com/CAFpoefRUUxgNosudQuc7gabSReFiI_puZ_WTjrzUSzB6pgOUdQ1babF2mxJql2lC8TQ-jjVLOgG5Qka8SUfF2fi-u2H9xSP7rZ_0Udpj-ISFPAY028UYKIUZcgOApnipVZwE7xh)
67-
68-
2. Utilize our auto-complete, drop-down options, and tooltips features to easily create arrangement, action, and assertion test statements for React; reducer, action creator, asynchronous action creator, and middleware test statements for Redux; and hooks, context, and endpoint test statements.
69-
70-
![](/public/newReact.png?raw=true)
7160

72-
3. Refer to the browser view of your app that is displayed on the right to quickly identify values for your selectors and use the file directory to open up a code editor view to easily refer to your codebase for props information.
61+
# Demo
7362

74-
4. Spearmint will then convert user input to dynamically generate a test file that will be saved inside a **tests** folder, which you can use to run ‘npm test’ on.
63+
![](/public/inapp-test-demo-run-test.gif)
7564

76-
![](/public/testfile.png?raw=true)
77-
78-
<br>
65+
***
7966

8067
### The Spearmint Team
8168
<hr>
@@ -84,24 +71,28 @@ To run Accessibility tests generated by spearmint on URL's with Puppeteer, insta
8471
> Alfred [@astaiglesia](https://github.com/astaiglesia) &nbsp;&middot;&nbsp;
8572
> Annie [@annieshinn](https://github.com/annieshinn) &nbsp;&middot;&nbsp;
8673
> Ben [@bkwak](https://github.com/bkwak) &nbsp;&middot;&nbsp;
87-
> Charlie [@charlie-maloney](https://github.com/charlie-maloney) <br />
74+
> Charlie [@charlie-maloney](https://github.com/charlie-maloney) &nbsp;&middot;&nbsp; <br />
8875
> Chloe [@HeyItsChloe](https://github.com/HeyItsChloe) &nbsp;&middot;&nbsp;
8976
> Cornelius [@corneeltron](https://github.com/corneeltron) &nbsp;&middot;&nbsp;
9077
> Dave [@davefranz](https://github.com/davefranz) &nbsp;&middot;&nbsp;
91-
> Evan [@Berghoer](https://github.com/Berghoer) &nbsp;&middot;&nbsp;
92-
> Gabriel [@bielchristo](https://github.com/bielchristo) <br />
78+
> Dieu [@dieunity](https://github.com/dieunity) &nbsp;&middot;&nbsp;
79+
> Evan [@Berghoer](https://github.com/Berghoer) &nbsp;&middot;&nbsp; <br />
80+
> Gabriel [@bielchristo](https://github.com/bielchristo)
9381
> Johnny [@johnny-lim](https://github.com/johnny-lim) &nbsp;&middot;&nbsp;
9482
> Julie [@julicious100](https://github.com/julicious100) &nbsp;&middot;&nbsp;
95-
> Karen [@karenpinilla](https://github.com/karenpinilla) &nbsp;&middot;&nbsp;
83+
> Justin [@JIB3377](https://github.com/JIB3377) &nbsp;&middot;&nbsp;
84+
> Karen [@karenpinilla](https://github.com/karenpinilla) &nbsp;&middot;&nbsp; <br />
9685
> Linda [@lcwish](https://github.com/lcwish) &nbsp;&middot;&nbsp;
97-
> Luis [@Luis-KM-Lo](https://github.com/Luis-KM-Lo) <br />
86+
> Luis [@Luis-KM-Lo](https://github.com/Luis-KM-Lo) &nbsp;&middot;&nbsp;
87+
> Max [@MaxWeisen](https://github.com/MaxWeisen) &nbsp;&middot;&nbsp;
9888
> Mike [@mbcoker](https://github.com/mbcoker) &nbsp;&middot;&nbsp;
99-
> Natlyn [@natlynp](https://github.com/natlynp) &nbsp;&middot;&nbsp;
89+
> Mo [@mhmaidi789](https://github.com/mhmaidi789) &nbsp;&middot;&nbsp; <br />
90+
> Natlyn [@natlynp](https://github.com/natlynp) &nbsp;&middot;&nbsp;
10091
> Nick [@nicolaspita](https://github.com/nicolaspita) &nbsp;&middot;&nbsp;
10192
> Rachel [@rachethecreator](https://github.com/rachethecreator) &nbsp;&middot;&nbsp;
102-
> Sean [@sean-haverstock](https://github.com/Sean-Haverstock) <br />
103-
> Sharon [@sharon-zhu](https://github.com/sharon-zhu) &nbsp;&middot;&nbsp;
93+
> Sean [@sean-haverstock](https://github.com/Sean-Haverstock) &nbsp;&middot;&nbsp; <br />
94+
> Sharon [@sharon-zhu](https://github.com/sharon-zhu) &nbsp;&middot;&nbsp;
10495
> Sieun [@sieunjang](https://github.com/sieunjang) &nbsp;&middot;&nbsp;
10596
> Tolan [@taoantaoan](https://github.com/taoantaoan) &nbsp;&middot;&nbsp;
106-
> Tristen [@twastell](https://github.com/twastell) <br />
107-
<hr>
97+
> Tristen [@twastell](https://github.com/twastell)
98+
<hr>

config-overrides.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/* config-overrides.js */
2+
3+
module.exports = function override(config, env) {
4+
//do stuff with the webpack config...
5+
config.target = 'electron-renderer';
6+
return config;
7+
}

package.json

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "spearmint",
3-
"version": "0.5.0",
3+
"version": "0.6.0",
44
"description": "An open-source developer tool that simplifies testing and hopes to help increase awareness about web accessibility.",
5-
"author": "spearmintjs",
5+
"author": "team spearmint",
66
"build": {
77
"appId": "com.spearmint",
88
"files": [
@@ -12,12 +12,24 @@
1212
],
1313
"directories": {
1414
"buildResources": "build"
15+
},
16+
"linux": {
17+
"target": [
18+
"deb"
19+
],
20+
"icon": "build/icon.*",
21+
"maintainer": "Team Spearmint"
1522
}
1623
},
1724
"main": "public/electron.js",
25+
"bugs": {
26+
"url": "https://github.com/oslabs-beta/spearmint_LA42/issues"
27+
},
1828
"homepage": "./",
1929
"private": true,
2030
"dependencies": {
31+
"@material-ui/core": "^4.11.3",
32+
"@material-ui/icons": "^4.11.2",
2133
"@types/jest": "^25.2.3",
2234
"@types/react-beautiful-dnd": "^12.1.2",
2335
"@types/react-dom": "^16.9.8",
@@ -28,33 +40,40 @@
2840
"dotenv": "^8.2.0",
2941
"electron-is-dev": "^1.1.0",
3042
"fibers": "^5.0.0",
43+
"fix-path": "^3.0.0",
3144
"js-beautify": "^1.10.0",
3245
"monaco-editor": "^0.17.0",
33-
"node-sass": "^4.12.0",
46+
"node-pty": "^0.10.0",
3447
"react": "^16.8.6",
3548
"react-autosuggest": "^9.4.3",
3649
"react-beautiful-dnd": "^11.0.3",
3750
"react-dom": "^16.8.6",
3851
"react-modal": "^3.8.1",
3952
"react-monaco-editor": "^0.25.1",
4053
"react-scripts": "^3.4.1",
41-
"sass": "^1.26.5",
54+
"sass": "^1.32.11",
4255
"typescript": "^3.9.2",
43-
"wait-on": "^3.3.0"
56+
"wait-on": "^3.3.0",
57+
"xterm": "^4.11.0",
58+
"xterm-addon-fit": "^0.5.0",
59+
"xterm-for-react": "^1.0.4"
4460
},
4561
"scripts": {
46-
"test": "react-scripts test --env=jsdom",
62+
"install-once": "npm i && npm run electron-rebuild",
63+
"test": "react-app-rewired test --env=jsdom",
4764
"test:e2e": "./node_modules/mocha/bin/mocha src/__tests__/spec.e2e.js",
4865
"test:integra": "mocha src/__tests__/spec.integra.js",
4966
"test:watch": "jest --watch",
5067
"react-start": "react-scripts start",
5168
"react-eject": "react-scripts eject",
52-
"build": "NODE_ENV=production npm run react-build && npm run electron-build",
69+
"build": "NODE_ENV=production react-app-rewired build && npm run electron-build",
5370
"react-build": "NODE_ENV=production react-scripts build",
5471
"electron-build": "NODE_ENV=production electron-builder -mwl",
72+
"electron-rebuild": "electron-rebuild -f -w node-pty",
73+
"postinstall": "electron-builder install-app-deps",
5574
"release": "npm run react-build && electron-builder --publish=always",
56-
"start-windows": "SET NODE_ENV=development concurrently \"cross-env BROWSER=none npm run react-start\" \"wait-on http://localhost:3000 && electron .\"",
57-
"start": "NODE_ENV=development concurrently \"cross-env BROWSER=none npm run react-start\" \"wait-on http://localhost:3000 && electron .\""
75+
"start-windows": "cross-env NODE_ENV=development concurrently \"cross-env BROWSER=none react-app-rewired start\" \"wait-on http://localhost:3000 && electron .\"",
76+
"start": "NODE_ENV=development concurrently \"cross-env BROWSER=none react-app-rewired start\" \"wait-on http://localhost:3000 && electron .\""
5877
},
5978
"browserslist": {
6079
"production": [
@@ -78,9 +97,10 @@
7897
"@typescript-eslint/parser": "^2.33.0",
7998
"chai": "^4.3.4",
8099
"chai-as-promised": "^7.1.1",
81-
"electron": "^5.0.3",
100+
"electron": "^12.0.5",
82101
"electron-builder": "^22.6.1",
83102
"electron-devtools-installer": "^3.0.0",
103+
"electron-rebuild": "^2.3.5",
84104
"enzyme": "^3.10.0",
85105
"enzyme-adapter-react-16": "^1.14.0",
86106
"eslint-config-airbnb-typescript": "^7.2.1",
@@ -89,8 +109,9 @@
89109
"eslint-plugin-react": "^7.20.0",
90110
"eslint-plugin-react-hooks": "^2.5.1",
91111
"mocha": "^8.3.2",
112+
"react-app-rewired": "^2.1.8",
92113
"react-test-renderer": "^16.12.0",
93114
"spectron": "^5.0.0",
94115
"test-data-bot": "^0.8.0"
95116
}
96-
}
117+
}

public/AccLens_Demo.gif

404 KB
Loading

public/appDemo - Copy.gif

-2 MB
Binary file not shown.

0 commit comments

Comments
 (0)