mirror of
https://github.com/rjNemo/devbook_ts
synced 2026-06-06 02:36:39 +00:00
Continuous Integration using Github Actions (#1)
* 🧪install cypress run yarn cypress to open E2E test runner run yarn test to tun unit tests * 🔧 set cypress up - define a baseUrl in cypress.json - create a smoke.spec.js to check config. * fix error in README
This commit is contained in:
parent
8cc47c2f82
commit
9f01f46f75
13 changed files with 735 additions and 49 deletions
19
.eslintrc.js
Normal file
19
.eslintrc.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
module.exports = {
|
||||
extends: ["react-app", "prettier"],
|
||||
plugins: ["prettier", "jest", "cypress"],
|
||||
parser: "babel-eslint",
|
||||
env: {
|
||||
browser: true,
|
||||
"cypress/globals": true,
|
||||
es6: true,
|
||||
"jest/globals": true,
|
||||
},
|
||||
settings: {
|
||||
react: {
|
||||
version: "detect",
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
"prettier/prettier": "warn",
|
||||
},
|
||||
};
|
||||
18
.github/workflows/deploy.yml
vendored
Normal file
18
.github/workflows/deploy.yml
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
name: Deploy
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
- name: Unit tests
|
||||
run: yarn test --watchAll=false
|
||||
- name: E2E tests
|
||||
uses: cypress-io/github-action@v1
|
||||
with:
|
||||
start: yarn start
|
||||
wait-on: 'http://localhost:3000'
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
# testing
|
||||
/coverage
|
||||
/cypress/integration/examples
|
||||
|
||||
# production
|
||||
/build
|
||||
|
|
|
|||
6
.prettierrc.js
Normal file
6
.prettierrc.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
module.exports = {
|
||||
arrowParens: "avoid",
|
||||
bracketSpacing: false,
|
||||
singleQuote: true,
|
||||
trailingComma: "all",
|
||||
};
|
||||
29
README.md
29
README.md
|
|
@ -2,23 +2,33 @@
|
|||
|
||||
Social App for connecting with developers & tech enthusiasts.
|
||||
|
||||
## Tests
|
||||
|
||||
### End-to-end
|
||||
|
||||
- [Cypress](https://www.cypress.io) - JavaScript End to End Testing Framework
|
||||
|
||||
Open test runner with:
|
||||
|
||||
```sh
|
||||
yarn cypress
|
||||
```
|
||||
|
||||
and edit your E2E test cases in `cypress/integration/` folder.
|
||||
|
||||
## Built With
|
||||
|
||||
* [ReactJs](https://reactjs.org/) - A JavaScript library for building user interfaces
|
||||
* [Redux](https://redux.js.org/) - A predictable statea container for JavaScript apps
|
||||
* [ROME](https://fiirebase.google.com/) - Firebase helps mobile and web app teams succeed
|
||||
|
||||
|
||||
- [ReactJs](https://reactjs.org/) - A JavaScript library for building user interfaces
|
||||
- [Redux](https://redux.js.org/) - A predictable statea container for JavaScript apps
|
||||
- [Firebase](https://fiirebase.google.com/) - Firebase helps mobile and web app teams succeed
|
||||
|
||||
## Versioning
|
||||
|
||||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).
|
||||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/your/project/tags).
|
||||
|
||||
## Authors
|
||||
|
||||
* **Ruidy Nemausat** - *Initial work* - [rjNemo](https://github.com/rjNemo/)
|
||||
|
||||
- **Ruidy Nemausat** - _Initial work_ - [rjNemo](https://github.com/rjNemo/)
|
||||
|
||||
## License
|
||||
|
||||
|
|
@ -26,5 +36,4 @@ This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md
|
|||
|
||||
## Acknowledgments
|
||||
|
||||
* [Inspiration](https://github.com/bradtraversy/devconnector_2.0)
|
||||
|
||||
- [Inspiration](https://github.com/bradtraversy/devconnector_2.0)
|
||||
|
|
|
|||
3
cypress.json
Normal file
3
cypress.json
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"baseUrl": "http://localhost:3000/"
|
||||
}
|
||||
5
cypress/fixtures/example.json
Normal file
5
cypress/fixtures/example.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
||||
6
cypress/integration/smoke.spec.js
Normal file
6
cypress/integration/smoke.spec.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
describe('smoke', () => {
|
||||
it('sees learn', () => {
|
||||
cy.visit('/');
|
||||
cy.get('a').contains('Learn');
|
||||
});
|
||||
});
|
||||
21
cypress/plugins/index.js
Normal file
21
cypress/plugins/index.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
/// <reference types="cypress" />
|
||||
// ***********************************************************
|
||||
// This example plugins/index.js can be used to load plugins
|
||||
//
|
||||
// You can change the location of this file or turn off loading
|
||||
// the plugins file with the 'pluginsFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/plugins-guide
|
||||
// ***********************************************************
|
||||
|
||||
// This function is called when a project is opened or re-opened (e.g. due to
|
||||
// the project's config changing)
|
||||
|
||||
/**
|
||||
* @type {Cypress.PluginConfig}
|
||||
*/
|
||||
module.exports = (on, config) => {
|
||||
// `on` is used to hook into various events Cypress emits
|
||||
// `config` is the resolved Cypress config
|
||||
}
|
||||
25
cypress/support/commands.js
Normal file
25
cypress/support/commands.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// ***********************************************
|
||||
// This example commands.js shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
//
|
||||
//
|
||||
// -- This is a parent command --
|
||||
// Cypress.Commands.add("login", (email, password) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
||||
20
cypress/support/index.js
Normal file
20
cypress/support/index.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// ***********************************************************
|
||||
// This example support/index.js is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
||||
|
|
@ -10,6 +10,7 @@
|
|||
"@types/node": "^12.0.0",
|
||||
"@types/react": "^16.9.0",
|
||||
"@types/react-dom": "^16.9.0",
|
||||
"cypress": "^4.5.0",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-scripts": "3.4.1",
|
||||
|
|
@ -19,6 +20,7 @@
|
|||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"cypress": "cypress open",
|
||||
"eject": "react-scripts eject"
|
||||
},
|
||||
"eslintConfig": {
|
||||
|
|
@ -36,4 +38,4 @@
|
|||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue