├── .dockerignore
├── .github
├── Playwright-serverless.png
├── concurrent-executions-lambda.png
├── duration-lambda.png
├── invocations-lambda.png
├── running-playwright-serverless.gif
└── workflows
│ ├── deploy.yml
│ └── test-serverless.yml
├── .gitignore
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── lambda
└── handler.js
├── serverless-runner
├── helpers
│ ├── logger.js
│ ├── requester.js
│ └── utils.js
├── index.js
├── package-lock.json
└── package.json
├── serverless.yml
└── tests
├── E2E
├── 1.test.js
├── 10.test.js
├── 100.test.js
├── 101.test.js
├── 102.test.js
├── 103.test.js
├── 104.test.js
├── 105.test.js
├── 106.test.js
├── 107.test.js
├── 108.test.js
├── 109.test.js
├── 11.test.js
├── 110.test.js
├── 12.test.js
├── 13.test.js
├── 14.test.js
├── 15.test.js
├── 16.test.js
├── 17.test.js
├── 18.test.js
├── 19.test.js
├── 2.test.js
├── 20.test.js
├── 21.test.js
├── 22.test.js
├── 23.test.js
├── 24.test.js
├── 25.test.js
├── 26.test.js
├── 27.test.js
├── 28.test.js
├── 29.test.js
├── 3.test.js
├── 30.test.js
├── 31.test.js
├── 32.test.js
├── 33.test.js
├── 34.test.js
├── 35.test.js
├── 36.test.js
├── 37.test.js
├── 38.test.js
├── 39.test.js
├── 4.test.js
├── 40.test.js
├── 41.test.js
├── 42.test.js
├── 43.test.js
├── 44.test.js
├── 45.test.js
├── 46.test.js
├── 47.test.js
├── 48.test.js
├── 49.test.js
├── 5.test.js
├── 50.test.js
├── 51.test.js
├── 52.test.js
├── 53.test.js
├── 54.test.js
├── 55.test.js
├── 56.test.js
├── 57.test.js
├── 58.test.js
├── 59.test.js
├── 6.test.js
├── 60.test.js
├── 61.test.js
├── 62.test.js
├── 63.test.js
├── 64.test.js
├── 65.test.js
├── 66.test.js
├── 67.test.js
├── 68.test.js
├── 69.test.js
├── 7.test.js
├── 70.test.js
├── 71.test.js
├── 72.test.js
├── 73.test.js
├── 74.test.js
├── 75.test.js
├── 76.test.js
├── 77.test.js
├── 78.test.js
├── 79.test.js
├── 8.test.js
├── 80.test.js
├── 81.test.js
├── 82.test.js
├── 83.test.js
├── 84.test.js
├── 85.test.js
├── 86.test.js
├── 87.test.js
├── 88.test.js
├── 89.test.js
├── 9.test.js
├── 90.test.js
├── 91.test.js
├── 92.test.js
├── 93.test.js
├── 94.test.js
├── 95.test.js
├── 96.test.js
├── 97.test.js
├── 98.test.js
└── 99.test.js
├── jest-environment.js
├── jest-playwright.config.js
├── jest.config.js
├── jest.setup.js
├── package-lock.json
└── package.json
/.dockerignore:
--------------------------------------------------------------------------------
1 | **/node_modules/
2 |
--------------------------------------------------------------------------------
/.github/Playwright-serverless.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/57ea9e56a07b6dcf9f2ffee5f47f51962dde32e4/.github/Playwright-serverless.png
--------------------------------------------------------------------------------
/.github/concurrent-executions-lambda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/57ea9e56a07b6dcf9f2ffee5f47f51962dde32e4/.github/concurrent-executions-lambda.png
--------------------------------------------------------------------------------
/.github/duration-lambda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/57ea9e56a07b6dcf9f2ffee5f47f51962dde32e4/.github/duration-lambda.png
--------------------------------------------------------------------------------
/.github/invocations-lambda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/57ea9e56a07b6dcf9f2ffee5f47f51962dde32e4/.github/invocations-lambda.png
--------------------------------------------------------------------------------
/.github/running-playwright-serverless.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/57ea9e56a07b6dcf9f2ffee5f47f51962dde32e4/.github/running-playwright-serverless.gif
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Deploy Lambda
2 |
3 | on:
4 | workflow_dispatch:
5 | push:
6 | tags:
7 | - v*
8 |
9 | jobs:
10 | deploy-prod:
11 |
12 | runs-on: ubuntu-22.04
13 |
14 | steps:
15 | - uses: actions/checkout@v2
16 | - name: Node.js Setup
17 | uses: actions/setup-node@v2
18 | - name: Install Serverless Framework
19 | run: npm install -g serverless@3.X
20 | - name: Serverless AWS authentication
21 | run: serverless config credentials --provider AWS --key ${{ secrets.AWS_ACCESS_KEY_ID }} --secret ${{ secrets.AWS_SECRET_ACCESS_KEY }}
22 | - name: Deploy Lambda functions
23 | run: make deploy
24 |
--------------------------------------------------------------------------------
/.github/workflows/test-serverless.yml:
--------------------------------------------------------------------------------
1 | name: Run test on Lambda
2 |
3 | on:
4 | workflow_dispatch:
5 |
6 | jobs:
7 | test:
8 |
9 | runs-on: ubuntu-22.04
10 |
11 | steps:
12 | - uses: actions/checkout@v2
13 | - name: Run test on serverless
14 | run: make test-serverless
15 | env:
16 | AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
17 | AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .serverless/
2 | node_modules/
3 | reports/
4 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:16-alpine3.16@sha256:2c405ed42fc0fd6aacbe5730042640450e5ec030bada7617beac88f742b6997b as build-image
2 |
3 | RUN apk add --no-cache \
4 | build-base \
5 | libtool \
6 | libressl-dev\
7 | musl-dev \
8 | libffi-dev \
9 | autoconf \
10 | automake \
11 | libexecinfo-dev \
12 | make \
13 | cmake \
14 | python3 \
15 | py3-pip \
16 | libcurl \
17 | && rm -rf /var/cache/apk/*
18 |
19 | WORKDIR /dependencies
20 |
21 | COPY tests/package*.json ./
22 |
23 | RUN npm ci \
24 | && npm install aws-lambda-ric@1.1.0 --save-exact
25 |
26 | FROM node:16-alpine3.16@sha256:2c405ed42fc0fd6aacbe5730042640450e5ec030bada7617beac88f742b6997b
27 |
28 | # Installs Chromium package
29 | RUN apk add --no-cache \
30 | chromium=102.0.5005.173-r0 \
31 | nss \
32 | freetype \
33 | freetype-dev \
34 | harfbuzz \
35 | ca-certificates \
36 | ttf-freefont \
37 | && rm -rf /var/cache/apk/*
38 |
39 | ENV IS_TEST_RUNNING_ON_LAMBDA true
40 |
41 | WORKDIR /app
42 |
43 | COPY lambda/handler.js ./
44 | COPY tests/ ./
45 |
46 | COPY --from=build-image /dependencies/node_modules/ ./node_modules
47 |
48 | ENTRYPOINT ["node_modules/.bin/aws-lambda-ric"]
49 | CMD ["handler.runTest"]
50 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 |
2 | default: test-serverless
3 |
4 | deploy:
5 | @serverless deploy --verbose
6 |
7 | test-serverless:
8 | @docker run -t --rm \
9 | -v $(shell pwd):/app \
10 | -w /app/serverless-runner \
11 | -e AWS_ACCESS_KEY_ID \
12 | -e AWS_SECRET_ACCESS_KEY \
13 | node:16-alpine3.16@sha256:2c405ed42fc0fd6aacbe5730042640450e5ec030bada7617beac88f742b6997b \
14 | sh -c "npm ci && npm start"
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Running hundreds of Playwright tests in a few seconds with AWS Lambda
2 |
3 |
4 |
Give the repository a star ⭐, it encourages me to create advanced software quality content 100% free
5 |
6 |
7 |
8 | This project has a playwright implementation so that it is consumed via AWS Lambda, allowing to parallelize the execution of all files and making the execution much faster.
9 |
10 | The success of this implementation demonstrates that, in scenarios where E2E testing is needed to validate critical behaviors that are not possible in another type of test, it is possible to use AWS Lambda to run this same test on all Pull Requests, not just a few times in day.
11 |
12 | > _**Note:** This project was created as a result of study. Identify whether the parallelism presented here suits your case._
13 |
14 | ## Result
15 |
16 | With playwright on serverless it was possible to run 110 files parallelized, with 221 tests, in less than 25 seconds.
17 | This same test running without parallelization would take 23 minutes.
18 |
19 | > To see the execution in detail, you can access the [pipeline log by clicking here](https://github.com/PauloGoncalvesBH/running-playwright-on-aws-lambda/actions/workflows/test-serverless.yml).
20 |
21 | The gif below demonstrates the execution:
22 |
23 |
24 |
25 |
26 |
27 | ## Pricing
28 |
29 | Running hundreds of Lambda functions that last a few seconds has little impact on the final cost. To implement this parallelism in your project, perform the price calculation.
30 |
31 | AWS Lambda Price:
32 |
33 | > The AWS Lambda free usage tier includes 1M free requests per month and 400,000 GB-seconds of compute time per month.
34 |
35 | Source: https://aws.amazon.com/lambda/pricing/
36 |
37 | ## Application diagram
38 |
39 |
40 |
41 |
42 |
43 | ## CloudWatch metrics
44 |
45 | Below are some important CloudWatch metrics.
46 |
47 | 110 lambda functions were invoked, however my account has a limit of 50 parallel executions, which made the total execution double in time.
48 |
49 | The average time that a lambda function takes to run is 7 seconds, which is less than the total of 23 seconds that takes to run the test.
50 |
51 | **However 23 seconds is a quiet time to wait when running an E2E test in a pipeline. I think we both agree that it's better than 23 minutes.**
52 |
53 | ### Parallel executions
54 |
55 | Limited to 50.
56 |
57 |
58 |
59 |
60 |
61 | ### Invocations
62 |
63 | 1 invocation per test file in [./tests/E2E](./tests/E2E).
64 |
65 |
66 |
67 |
68 |
69 | ### Duration
70 |
71 | The longest running lambda function was 10.2 seconds, less than half of the total execution time of all functions.
72 |
73 | With a higher concurrent execution we would have better results in total time.
74 |
75 |
76 |
77 |
78 |
79 | ## More information
80 |
81 | > To understand how tests are run and AWS Lambda is built I recommend accessing the pipelines in [./.github/workflows/](./.github/workflows/) and the [Makefile](./Makefile).
82 |
83 | ### Deploying at AWS Lambda
84 |
85 | 1. Install serverless globally:
86 |
87 | ```sh
88 | npm install --global serverless@3.X
89 | ```
90 |
91 | 2. Create AWS Acess keys: https://www.serverless.com/framework/docs/providers/aws/guide/credentials/#creating-aws-access-keys
92 |
93 | 3. Configure the Serverless Framework CLI to use AWS access keys
94 |
95 | ```sh
96 | serverless config credentials \
97 | --provider aws \
98 | --key \
99 | --secret
100 | ```
101 |
102 | > More at: https://www.serverless.com/framework/docs/providers/aws/cli-reference/config-credentials#configure-the-default-profile
103 |
104 | 4. And, finally, deploy the application at AWS Lambda:
105 |
106 | ```sh
107 | make deploy
108 | ```
109 |
110 | ### Run tests at AWS Lambda
111 |
112 | After deploying run the tests using the following command:
113 |
114 | ```sh
115 | make test-serverless
116 | ```
117 |
118 | ### Run locally (without using AWS Lambda)
119 |
120 | Acess the directory [./tests](./tests) and execute:
121 |
122 | ```sh
123 | npm ci
124 | ```
125 |
126 | Run the test with:
127 |
128 | ```sh
129 | npm test
130 | ```
131 |
132 | ___
133 |
134 | [LICENSE GNU General Public License v3.0](./LICENSE)
135 |
--------------------------------------------------------------------------------
/lambda/handler.js:
--------------------------------------------------------------------------------
1 | const { runCLI } = require('jest')
2 |
3 | const jestConfig = require('./jest.config')
4 |
5 | module.exports.runTest = async event => {
6 | try {
7 | const { testMatch } = event.body
8 | if (typeof testMatch === undefined) {
9 | return {
10 | statusCode: 400,
11 | body: JSON.stringify('Não foi encontrada a propriedade \'testMatch\'.')
12 | }
13 | }
14 |
15 | const { results } = await runCLI({
16 | ...jestConfig,
17 | testMatch: [testMatch]
18 | }, [''])
19 |
20 | return {
21 | statusCode: 200,
22 | body: JSON.stringify(results)
23 | }
24 | } catch (error) {
25 | console.error({ error });
26 | return {
27 | statusCode: 500,
28 | body: JSON.stringify(error),
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/serverless-runner/helpers/logger.js:
--------------------------------------------------------------------------------
1 | const { Signale } = require('signale');
2 |
3 | const signale = new Signale({
4 | types: {
5 | star: {
6 | badge: '/',
7 | label: 'executed'
8 | },
9 | success: {
10 | label: 'tests passed'
11 | },
12 | pending: {
13 | label: 'tests pending'
14 | },
15 | error: {
16 | label: 'tests failed'
17 | },
18 | start: {
19 | label: 'starting test'
20 | }
21 | }
22 | })
23 |
24 | signale.config({
25 | displayTimestamp: true,
26 | underlineLabel: false
27 | })
28 |
29 | const durationInSeconds = startTime => {
30 | const durationInMilliseconds = Date.now() - startTime
31 | const durationInSeconds = ((durationInMilliseconds % 60000) / 1000).toFixed(2)
32 | return `${durationInSeconds} seconds`
33 | }
34 |
35 | const millisToMinutesAndSeconds = millis => {
36 | var minutes = Math.floor(millis / 60000);
37 | var seconds = ((millis % 60000) / 1000).toFixed(0);
38 | return (minutes < 10 ? '0' : '') + minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
39 | }
40 |
41 | function logStartTest({ numTotalFiles }) {
42 | signale.start(`Test will run on ${numTotalFiles} files\n`)
43 | }
44 |
45 | function logFileExecuted({ file, startTestTime, numExecution }) {
46 | numExecution = ('00' + numExecution).slice(-3)
47 | signale.star({ prefix: `[${numExecution}]`, message: `File "${file}" executed, took ${durationInSeconds(startTestTime)}` });
48 | }
49 |
50 | function logResume({ numPassedTests, numPendingTests, numFailedTests }) {
51 | console.log();
52 | signale.success(numPassedTests)
53 | signale.pending(numPendingTests)
54 | signale.error(numFailedTests)
55 | }
56 |
57 | function logComplete({ numTotalTests, numTotalFiles, startTestTime, totalTimeExecution }) {
58 | console.log();
59 | signale.complete(`${numTotalTests} tests on ${numTotalFiles} files executed in ${durationInSeconds(startTestTime)}\n`)
60 | signale.info(`Duration without serverless (mm:ss): ${millisToMinutesAndSeconds(totalTimeExecution)}`)
61 | const timeSavedInMillis = totalTimeExecution - (Date.now() - startTestTime)
62 | signale.info(`Time saved (mm:ss): ${millisToMinutesAndSeconds(timeSavedInMillis)}`)
63 | }
64 |
65 | function logFailedTestPattern({ testPattern }) {
66 | signale.fatal(`'${testPattern}' pattern entered matches no test file`)
67 | }
68 |
69 | module.exports = {
70 | logStartTest,
71 | logFileExecuted,
72 | logResume,
73 | logComplete,
74 | logFailedTestPattern,
75 | }
76 |
--------------------------------------------------------------------------------
/serverless-runner/helpers/requester.js:
--------------------------------------------------------------------------------
1 | const AWS = require("aws-sdk")
2 |
3 | const loggers = require('./logger')
4 | const utils = require('./utils')
5 |
6 | const lambda = new AWS.Lambda({ region: "us-east-1" })
7 |
8 | let numFailedTests = 0
9 | let numPassedTests = 0
10 | let numPendingTests = 0
11 | let numTotalTests = 0
12 | let numExecution = 0
13 | let totalTimeExecution = 0
14 |
15 | function runTest({ file, functionName, resolve, startTestTime }) {
16 | return lambda
17 | .invoke({
18 | FunctionName: functionName,
19 | Payload: JSON.stringify({
20 | body: {
21 | testMatch: file,
22 | }
23 | })
24 | })
25 | .promise()
26 | .then(onTestExecuted.bind(null, { file, startTestTime, resolve }))
27 | .catch(error => {
28 | if (error.message.includes('Check your AWS Secret Access Key and signing method')) {
29 | console.error({ error: 'Unauthenticated. Check your AWS Secret Access Key (AWS_SECRET_ACCESS_KEY) and Acess Key (AWS_ACCESS_KEY_ID).' })
30 | } else {
31 | console.error({ error: error.message, stackTrace: error.stack })
32 | }
33 | process.exit(1)
34 | })
35 | }
36 |
37 | const onTestExecuted = ({ file, startTestTime, resolve }, response) => {
38 | numExecution += 1
39 | loggers.logFileExecuted({ file, startTestTime, numExecution })
40 | const responseObj = utils.convertTestResponseToObject(response)
41 | numFailedTests += responseObj.numFailedTests
42 | numPassedTests += responseObj.numPassedTests
43 | numPendingTests += responseObj.numPendingTests
44 | numTotalTests += responseObj.numTotalTests
45 | totalTimeExecution += Date.now() - startTestTime
46 | resolve({
47 | numFailedTests,
48 | numPassedTests,
49 | numPendingTests,
50 | numTotalTests,
51 | totalTimeExecution,
52 | })
53 | }
54 |
55 | module.exports = {
56 | runTest,
57 | }
58 |
--------------------------------------------------------------------------------
/serverless-runner/helpers/utils.js:
--------------------------------------------------------------------------------
1 | const glob = require("glob")
2 |
3 | function convertTestResponseToObject(response) {
4 | const payload = JSON.parse(JSON.stringify(response.Payload))
5 | return JSON.parse(JSON.parse(payload).body)
6 | }
7 |
8 | function returnMax(array) {
9 | return {
10 | numFailedTests: Math.max.apply(Math, array.map((o) => o.numFailedTests)),
11 | numPassedTests: Math.max.apply(Math, array.map((o) => o.numPassedTests)),
12 | numPendingTests: Math.max.apply(Math, array.map((o) => o.numPendingTests)),
13 | numTotalTests: Math.max.apply(Math, array.map((o) => o.numTotalTests)),
14 | totalTimeExecution: Math.max.apply(Math, array.map((o) => o.totalTimeExecution)),
15 | }
16 | }
17 |
18 | function getAllTestFilesByTestPattern({ testPattern }) {
19 | const files = glob
20 | .sync(testPattern, {
21 | cwd: "../tests"
22 | })
23 | .map(file => `/app/${file}`)
24 | return {
25 | files,
26 | numTotalFiles: files.length,
27 | }
28 | }
29 |
30 | module.exports = {
31 | convertTestResponseToObject,
32 | getAllTestFilesByTestPattern,
33 | returnMax,
34 | }
35 |
--------------------------------------------------------------------------------
/serverless-runner/index.js:
--------------------------------------------------------------------------------
1 | const loggers = require('./helpers/logger')
2 | const requester = require('./helpers/requester')
3 | const utils = require('./helpers/utils')
4 |
5 | async function runPlaywrightTestOnServerless() {
6 | try {
7 | const testPattern = 'E2E/*.test.js'
8 | const { files, numTotalFiles } = utils.getAllTestFilesByTestPattern({
9 | testPattern
10 | })
11 |
12 | if (numTotalFiles === 0) {
13 | loggers.logFailedTestPattern({ testPattern })
14 | process.exit(1)
15 | }
16 |
17 | loggers.logStartTest({ numTotalFiles })
18 |
19 | const startTestTime = Date.now()
20 | const requestPromises = []
21 | files.forEach((file) => {
22 | requestPromises.push(
23 | new Promise((resolve) => {
24 | requester.runTest({
25 | file,
26 | functionName: 'playwright-serverless-dev-run-tests',
27 | startTestTime,
28 | resolve,
29 | })
30 | })
31 | )
32 | })
33 |
34 | Promise.all(requestPromises).then((allTestsResponse) => {
35 | const {
36 | numFailedTests,
37 | numPassedTests,
38 | numPendingTests,
39 | numTotalTests,
40 | totalTimeExecution,
41 | } = utils.returnMax(allTestsResponse)
42 | loggers.logResume({ numPassedTests, numFailedTests, numPendingTests })
43 | loggers.logComplete({
44 | numTotalTests,numTotalFiles, startTestTime, totalTimeExecution
45 | })
46 | process.exit(0)
47 | })
48 | } catch (e) {
49 | console.error(e)
50 | process.exit(1)
51 | }
52 | }
53 |
54 | runPlaywrightTestOnServerless()
55 |
--------------------------------------------------------------------------------
/serverless-runner/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverless-runner",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "license": "GPL-3.0",
9 | "dependencies": {
10 | "aws-sdk": "2.973.0",
11 | "glob": "7.1.7",
12 | "signale": "1.4.0"
13 | }
14 | },
15 | "node_modules/ansi-styles": {
16 | "version": "3.2.1",
17 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
18 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
19 | "dependencies": {
20 | "color-convert": "^1.9.0"
21 | },
22 | "engines": {
23 | "node": ">=4"
24 | }
25 | },
26 | "node_modules/aws-sdk": {
27 | "version": "2.973.0",
28 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.973.0.tgz",
29 | "integrity": "sha512-IhVDIrI+7x+643S7HKDZ8bA8rTKfkCLSlxUZcP9W39PD5y04Hwamxou/kNTtXzdg1yyriq3d5tCVu6w5Z5QFDQ==",
30 | "hasInstallScript": true,
31 | "dependencies": {
32 | "buffer": "4.9.2",
33 | "events": "1.1.1",
34 | "ieee754": "1.1.13",
35 | "jmespath": "0.15.0",
36 | "querystring": "0.2.0",
37 | "sax": "1.2.1",
38 | "url": "0.10.3",
39 | "uuid": "3.3.2",
40 | "xml2js": "0.4.19"
41 | },
42 | "engines": {
43 | "node": ">= 0.8.0"
44 | }
45 | },
46 | "node_modules/balanced-match": {
47 | "version": "1.0.2",
48 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
49 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
50 | },
51 | "node_modules/base64-js": {
52 | "version": "1.5.1",
53 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
54 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
55 | "funding": [
56 | {
57 | "type": "github",
58 | "url": "https://github.com/sponsors/feross"
59 | },
60 | {
61 | "type": "patreon",
62 | "url": "https://www.patreon.com/feross"
63 | },
64 | {
65 | "type": "consulting",
66 | "url": "https://feross.org/support"
67 | }
68 | ]
69 | },
70 | "node_modules/brace-expansion": {
71 | "version": "1.1.11",
72 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
73 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
74 | "dependencies": {
75 | "balanced-match": "^1.0.0",
76 | "concat-map": "0.0.1"
77 | }
78 | },
79 | "node_modules/buffer": {
80 | "version": "4.9.2",
81 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
82 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
83 | "dependencies": {
84 | "base64-js": "^1.0.2",
85 | "ieee754": "^1.1.4",
86 | "isarray": "^1.0.0"
87 | }
88 | },
89 | "node_modules/chalk": {
90 | "version": "2.4.2",
91 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
92 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
93 | "dependencies": {
94 | "ansi-styles": "^3.2.1",
95 | "escape-string-regexp": "^1.0.5",
96 | "supports-color": "^5.3.0"
97 | },
98 | "engines": {
99 | "node": ">=4"
100 | }
101 | },
102 | "node_modules/color-convert": {
103 | "version": "1.9.3",
104 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
105 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
106 | "dependencies": {
107 | "color-name": "1.1.3"
108 | }
109 | },
110 | "node_modules/color-name": {
111 | "version": "1.1.3",
112 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
113 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
114 | },
115 | "node_modules/concat-map": {
116 | "version": "0.0.1",
117 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
118 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
119 | },
120 | "node_modules/error-ex": {
121 | "version": "1.3.2",
122 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
123 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
124 | "dependencies": {
125 | "is-arrayish": "^0.2.1"
126 | }
127 | },
128 | "node_modules/escape-string-regexp": {
129 | "version": "1.0.5",
130 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
131 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
132 | "engines": {
133 | "node": ">=0.8.0"
134 | }
135 | },
136 | "node_modules/events": {
137 | "version": "1.1.1",
138 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
139 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
140 | "engines": {
141 | "node": ">=0.4.x"
142 | }
143 | },
144 | "node_modules/figures": {
145 | "version": "2.0.0",
146 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
147 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
148 | "dependencies": {
149 | "escape-string-regexp": "^1.0.5"
150 | },
151 | "engines": {
152 | "node": ">=4"
153 | }
154 | },
155 | "node_modules/find-up": {
156 | "version": "2.1.0",
157 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
158 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
159 | "dependencies": {
160 | "locate-path": "^2.0.0"
161 | },
162 | "engines": {
163 | "node": ">=4"
164 | }
165 | },
166 | "node_modules/fs.realpath": {
167 | "version": "1.0.0",
168 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
169 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
170 | },
171 | "node_modules/glob": {
172 | "version": "7.1.7",
173 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
174 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
175 | "dependencies": {
176 | "fs.realpath": "^1.0.0",
177 | "inflight": "^1.0.4",
178 | "inherits": "2",
179 | "minimatch": "^3.0.4",
180 | "once": "^1.3.0",
181 | "path-is-absolute": "^1.0.0"
182 | },
183 | "engines": {
184 | "node": "*"
185 | },
186 | "funding": {
187 | "url": "https://github.com/sponsors/isaacs"
188 | }
189 | },
190 | "node_modules/graceful-fs": {
191 | "version": "4.2.8",
192 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
193 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
194 | },
195 | "node_modules/has-flag": {
196 | "version": "3.0.0",
197 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
198 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
199 | "engines": {
200 | "node": ">=4"
201 | }
202 | },
203 | "node_modules/ieee754": {
204 | "version": "1.1.13",
205 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
206 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
207 | },
208 | "node_modules/inflight": {
209 | "version": "1.0.6",
210 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
211 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
212 | "dependencies": {
213 | "once": "^1.3.0",
214 | "wrappy": "1"
215 | }
216 | },
217 | "node_modules/inherits": {
218 | "version": "2.0.4",
219 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
220 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
221 | },
222 | "node_modules/is-arrayish": {
223 | "version": "0.2.1",
224 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
225 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
226 | },
227 | "node_modules/isarray": {
228 | "version": "1.0.0",
229 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
230 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
231 | },
232 | "node_modules/jmespath": {
233 | "version": "0.15.0",
234 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
235 | "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=",
236 | "engines": {
237 | "node": ">= 0.6.0"
238 | }
239 | },
240 | "node_modules/json-parse-better-errors": {
241 | "version": "1.0.2",
242 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
243 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
244 | },
245 | "node_modules/load-json-file": {
246 | "version": "4.0.0",
247 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
248 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
249 | "dependencies": {
250 | "graceful-fs": "^4.1.2",
251 | "parse-json": "^4.0.0",
252 | "pify": "^3.0.0",
253 | "strip-bom": "^3.0.0"
254 | },
255 | "engines": {
256 | "node": ">=4"
257 | }
258 | },
259 | "node_modules/locate-path": {
260 | "version": "2.0.0",
261 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
262 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
263 | "dependencies": {
264 | "p-locate": "^2.0.0",
265 | "path-exists": "^3.0.0"
266 | },
267 | "engines": {
268 | "node": ">=4"
269 | }
270 | },
271 | "node_modules/minimatch": {
272 | "version": "3.0.4",
273 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
274 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
275 | "dependencies": {
276 | "brace-expansion": "^1.1.7"
277 | },
278 | "engines": {
279 | "node": "*"
280 | }
281 | },
282 | "node_modules/once": {
283 | "version": "1.4.0",
284 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
285 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
286 | "dependencies": {
287 | "wrappy": "1"
288 | }
289 | },
290 | "node_modules/p-limit": {
291 | "version": "1.3.0",
292 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
293 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
294 | "dependencies": {
295 | "p-try": "^1.0.0"
296 | },
297 | "engines": {
298 | "node": ">=4"
299 | }
300 | },
301 | "node_modules/p-locate": {
302 | "version": "2.0.0",
303 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
304 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
305 | "dependencies": {
306 | "p-limit": "^1.1.0"
307 | },
308 | "engines": {
309 | "node": ">=4"
310 | }
311 | },
312 | "node_modules/p-try": {
313 | "version": "1.0.0",
314 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
315 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
316 | "engines": {
317 | "node": ">=4"
318 | }
319 | },
320 | "node_modules/parse-json": {
321 | "version": "4.0.0",
322 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
323 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
324 | "dependencies": {
325 | "error-ex": "^1.3.1",
326 | "json-parse-better-errors": "^1.0.1"
327 | },
328 | "engines": {
329 | "node": ">=4"
330 | }
331 | },
332 | "node_modules/path-exists": {
333 | "version": "3.0.0",
334 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
335 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
336 | "engines": {
337 | "node": ">=4"
338 | }
339 | },
340 | "node_modules/path-is-absolute": {
341 | "version": "1.0.1",
342 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
343 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
344 | "engines": {
345 | "node": ">=0.10.0"
346 | }
347 | },
348 | "node_modules/pify": {
349 | "version": "3.0.0",
350 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
351 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
352 | "engines": {
353 | "node": ">=4"
354 | }
355 | },
356 | "node_modules/pkg-conf": {
357 | "version": "2.1.0",
358 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
359 | "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
360 | "dependencies": {
361 | "find-up": "^2.0.0",
362 | "load-json-file": "^4.0.0"
363 | },
364 | "engines": {
365 | "node": ">=4"
366 | }
367 | },
368 | "node_modules/punycode": {
369 | "version": "1.3.2",
370 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
371 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
372 | },
373 | "node_modules/querystring": {
374 | "version": "0.2.0",
375 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
376 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
377 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
378 | "engines": {
379 | "node": ">=0.4.x"
380 | }
381 | },
382 | "node_modules/sax": {
383 | "version": "1.2.1",
384 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
385 | "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
386 | },
387 | "node_modules/signale": {
388 | "version": "1.4.0",
389 | "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz",
390 | "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
391 | "dependencies": {
392 | "chalk": "^2.3.2",
393 | "figures": "^2.0.0",
394 | "pkg-conf": "^2.1.0"
395 | },
396 | "engines": {
397 | "node": ">=6"
398 | }
399 | },
400 | "node_modules/strip-bom": {
401 | "version": "3.0.0",
402 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
403 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
404 | "engines": {
405 | "node": ">=4"
406 | }
407 | },
408 | "node_modules/supports-color": {
409 | "version": "5.5.0",
410 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
411 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
412 | "dependencies": {
413 | "has-flag": "^3.0.0"
414 | },
415 | "engines": {
416 | "node": ">=4"
417 | }
418 | },
419 | "node_modules/url": {
420 | "version": "0.10.3",
421 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
422 | "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
423 | "dependencies": {
424 | "punycode": "1.3.2",
425 | "querystring": "0.2.0"
426 | }
427 | },
428 | "node_modules/uuid": {
429 | "version": "3.3.2",
430 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
431 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
432 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
433 | "bin": {
434 | "uuid": "bin/uuid"
435 | }
436 | },
437 | "node_modules/wrappy": {
438 | "version": "1.0.2",
439 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
440 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
441 | },
442 | "node_modules/xml2js": {
443 | "version": "0.4.19",
444 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
445 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
446 | "dependencies": {
447 | "sax": ">=0.6.0",
448 | "xmlbuilder": "~9.0.1"
449 | }
450 | },
451 | "node_modules/xmlbuilder": {
452 | "version": "9.0.7",
453 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
454 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
455 | "engines": {
456 | "node": ">=4.0"
457 | }
458 | }
459 | },
460 | "dependencies": {
461 | "ansi-styles": {
462 | "version": "3.2.1",
463 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
464 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
465 | "requires": {
466 | "color-convert": "^1.9.0"
467 | }
468 | },
469 | "aws-sdk": {
470 | "version": "2.973.0",
471 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.973.0.tgz",
472 | "integrity": "sha512-IhVDIrI+7x+643S7HKDZ8bA8rTKfkCLSlxUZcP9W39PD5y04Hwamxou/kNTtXzdg1yyriq3d5tCVu6w5Z5QFDQ==",
473 | "requires": {
474 | "buffer": "4.9.2",
475 | "events": "1.1.1",
476 | "ieee754": "1.1.13",
477 | "jmespath": "0.15.0",
478 | "querystring": "0.2.0",
479 | "sax": "1.2.1",
480 | "url": "0.10.3",
481 | "uuid": "3.3.2",
482 | "xml2js": "0.4.19"
483 | }
484 | },
485 | "balanced-match": {
486 | "version": "1.0.2",
487 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
488 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
489 | },
490 | "base64-js": {
491 | "version": "1.5.1",
492 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
493 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
494 | },
495 | "brace-expansion": {
496 | "version": "1.1.11",
497 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
498 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
499 | "requires": {
500 | "balanced-match": "^1.0.0",
501 | "concat-map": "0.0.1"
502 | }
503 | },
504 | "buffer": {
505 | "version": "4.9.2",
506 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
507 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
508 | "requires": {
509 | "base64-js": "^1.0.2",
510 | "ieee754": "^1.1.4",
511 | "isarray": "^1.0.0"
512 | }
513 | },
514 | "chalk": {
515 | "version": "2.4.2",
516 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
517 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
518 | "requires": {
519 | "ansi-styles": "^3.2.1",
520 | "escape-string-regexp": "^1.0.5",
521 | "supports-color": "^5.3.0"
522 | }
523 | },
524 | "color-convert": {
525 | "version": "1.9.3",
526 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
527 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
528 | "requires": {
529 | "color-name": "1.1.3"
530 | }
531 | },
532 | "color-name": {
533 | "version": "1.1.3",
534 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
535 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
536 | },
537 | "concat-map": {
538 | "version": "0.0.1",
539 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
540 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
541 | },
542 | "error-ex": {
543 | "version": "1.3.2",
544 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
545 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
546 | "requires": {
547 | "is-arrayish": "^0.2.1"
548 | }
549 | },
550 | "escape-string-regexp": {
551 | "version": "1.0.5",
552 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
553 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
554 | },
555 | "events": {
556 | "version": "1.1.1",
557 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
558 | "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
559 | },
560 | "figures": {
561 | "version": "2.0.0",
562 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
563 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
564 | "requires": {
565 | "escape-string-regexp": "^1.0.5"
566 | }
567 | },
568 | "find-up": {
569 | "version": "2.1.0",
570 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
571 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
572 | "requires": {
573 | "locate-path": "^2.0.0"
574 | }
575 | },
576 | "fs.realpath": {
577 | "version": "1.0.0",
578 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
579 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
580 | },
581 | "glob": {
582 | "version": "7.1.7",
583 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
584 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
585 | "requires": {
586 | "fs.realpath": "^1.0.0",
587 | "inflight": "^1.0.4",
588 | "inherits": "2",
589 | "minimatch": "^3.0.4",
590 | "once": "^1.3.0",
591 | "path-is-absolute": "^1.0.0"
592 | }
593 | },
594 | "graceful-fs": {
595 | "version": "4.2.8",
596 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
597 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
598 | },
599 | "has-flag": {
600 | "version": "3.0.0",
601 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
602 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
603 | },
604 | "ieee754": {
605 | "version": "1.1.13",
606 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
607 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
608 | },
609 | "inflight": {
610 | "version": "1.0.6",
611 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
612 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
613 | "requires": {
614 | "once": "^1.3.0",
615 | "wrappy": "1"
616 | }
617 | },
618 | "inherits": {
619 | "version": "2.0.4",
620 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
621 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
622 | },
623 | "is-arrayish": {
624 | "version": "0.2.1",
625 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
626 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
627 | },
628 | "isarray": {
629 | "version": "1.0.0",
630 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
631 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
632 | },
633 | "jmespath": {
634 | "version": "0.15.0",
635 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
636 | "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
637 | },
638 | "json-parse-better-errors": {
639 | "version": "1.0.2",
640 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
641 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
642 | },
643 | "load-json-file": {
644 | "version": "4.0.0",
645 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
646 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
647 | "requires": {
648 | "graceful-fs": "^4.1.2",
649 | "parse-json": "^4.0.0",
650 | "pify": "^3.0.0",
651 | "strip-bom": "^3.0.0"
652 | }
653 | },
654 | "locate-path": {
655 | "version": "2.0.0",
656 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
657 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
658 | "requires": {
659 | "p-locate": "^2.0.0",
660 | "path-exists": "^3.0.0"
661 | }
662 | },
663 | "minimatch": {
664 | "version": "3.0.4",
665 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
666 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
667 | "requires": {
668 | "brace-expansion": "^1.1.7"
669 | }
670 | },
671 | "once": {
672 | "version": "1.4.0",
673 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
674 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
675 | "requires": {
676 | "wrappy": "1"
677 | }
678 | },
679 | "p-limit": {
680 | "version": "1.3.0",
681 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
682 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
683 | "requires": {
684 | "p-try": "^1.0.0"
685 | }
686 | },
687 | "p-locate": {
688 | "version": "2.0.0",
689 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
690 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
691 | "requires": {
692 | "p-limit": "^1.1.0"
693 | }
694 | },
695 | "p-try": {
696 | "version": "1.0.0",
697 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
698 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
699 | },
700 | "parse-json": {
701 | "version": "4.0.0",
702 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
703 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
704 | "requires": {
705 | "error-ex": "^1.3.1",
706 | "json-parse-better-errors": "^1.0.1"
707 | }
708 | },
709 | "path-exists": {
710 | "version": "3.0.0",
711 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
712 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
713 | },
714 | "path-is-absolute": {
715 | "version": "1.0.1",
716 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
717 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
718 | },
719 | "pify": {
720 | "version": "3.0.0",
721 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
722 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
723 | },
724 | "pkg-conf": {
725 | "version": "2.1.0",
726 | "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
727 | "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
728 | "requires": {
729 | "find-up": "^2.0.0",
730 | "load-json-file": "^4.0.0"
731 | }
732 | },
733 | "punycode": {
734 | "version": "1.3.2",
735 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
736 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
737 | },
738 | "querystring": {
739 | "version": "0.2.0",
740 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
741 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
742 | },
743 | "sax": {
744 | "version": "1.2.1",
745 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
746 | "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
747 | },
748 | "signale": {
749 | "version": "1.4.0",
750 | "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz",
751 | "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==",
752 | "requires": {
753 | "chalk": "^2.3.2",
754 | "figures": "^2.0.0",
755 | "pkg-conf": "^2.1.0"
756 | }
757 | },
758 | "strip-bom": {
759 | "version": "3.0.0",
760 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
761 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
762 | },
763 | "supports-color": {
764 | "version": "5.5.0",
765 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
766 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
767 | "requires": {
768 | "has-flag": "^3.0.0"
769 | }
770 | },
771 | "url": {
772 | "version": "0.10.3",
773 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
774 | "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
775 | "requires": {
776 | "punycode": "1.3.2",
777 | "querystring": "0.2.0"
778 | }
779 | },
780 | "uuid": {
781 | "version": "3.3.2",
782 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
783 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
784 | },
785 | "wrappy": {
786 | "version": "1.0.2",
787 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
788 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
789 | },
790 | "xml2js": {
791 | "version": "0.4.19",
792 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
793 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
794 | "requires": {
795 | "sax": ">=0.6.0",
796 | "xmlbuilder": "~9.0.1"
797 | }
798 | },
799 | "xmlbuilder": {
800 | "version": "9.0.7",
801 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
802 | "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
803 | }
804 | }
805 | }
806 |
--------------------------------------------------------------------------------
/serverless-runner/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverless-runner",
3 | "private": true,
4 | "author": "Paulo Gonçalves (https://www.linkedin.com/in/paulo-goncalves/)",
5 | "license": "GPL-3.0",
6 | "scripts": {
7 | "start": "node ./index.js"
8 | },
9 | "dependencies": {
10 | "aws-sdk": "2.973.0",
11 | "glob": "7.1.7",
12 | "signale": "1.4.0"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/serverless.yml:
--------------------------------------------------------------------------------
1 |
2 | service: playwright-serverless
3 |
4 | frameworkVersion: '3'
5 |
6 | provider:
7 | name: aws
8 | runtime: nodejs16.x
9 | stage: dev
10 | region: us-east-1
11 | ecr:
12 | images:
13 | baseimage:
14 | path: ./
15 | file: Dockerfile
16 | # platform: linux/amd64
17 | # Uncomment the above line if you are using Apple M1
18 |
19 | functions:
20 | run-tests:
21 | timeout: 60
22 | image: baseimage
23 | events:
24 | - httpApi:
25 | path: /
26 | method: post
27 |
--------------------------------------------------------------------------------
/tests/E2E/1.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('FEITO PRA QUEBRAR', async () => {
21 | console.log('esperando \'logout\'');
22 | await page.waitForSelector(getDataTestIdSelector('logout'))
23 | })
24 |
25 | xit('successful login', async () => {
26 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
27 | await page.type(getDataTestIdSelector('senha'), 'somepass')
28 | await page.click(getDataTestIdSelector('entrar'))
29 |
30 | await page.waitForSelector(getDataTestIdSelector('logout'))
31 |
32 | const url = await page.url()
33 | expect(url).toContain('/admin/home')
34 | })
35 | })
36 |
--------------------------------------------------------------------------------
/tests/E2E/10.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/100.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/101.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/102.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/103.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/104.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/105.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/106.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/107.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/108.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/109.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/11.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/110.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/12.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/13.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/14.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/15.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/16.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/17.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/18.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/19.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/2.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/20.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/21.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/22.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/23.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/24.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/25.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/26.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/27.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/28.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/29.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/3.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/30.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/31.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/32.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/33.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/34.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/35.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/36.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/37.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/38.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/39.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/4.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/40.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/41.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/42.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/43.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/44.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/45.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/46.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/47.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/48.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/49.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/5.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/50.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/51.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/52.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/53.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/54.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/55.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/56.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/57.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/58.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/59.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/6.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/60.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/61.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/62.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/63.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/64.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/65.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/66.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/67.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/68.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/69.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/7.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/70.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/71.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/72.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/73.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/74.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/75.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/76.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/77.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/78.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/79.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/8.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/80.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/81.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/82.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/83.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/84.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/85.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/86.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/87.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/88.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/89.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/9.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/90.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/91.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/92.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/93.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/94.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/95.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | expect(true).toBe(false)
19 | })
20 |
21 | xit('successful login', async () => {
22 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
23 | await page.type(getDataTestIdSelector('senha'), 'somepass')
24 | await page.click(getDataTestIdSelector('entrar'))
25 |
26 | await page.waitForSelector(getDataTestIdSelector('logout'))
27 |
28 | const url = await page.url()
29 | expect(url).toContain('/admin/home')
30 | })
31 | })
32 |
--------------------------------------------------------------------------------
/tests/E2E/96.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/97.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/98.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/E2E/99.test.js:
--------------------------------------------------------------------------------
1 | const getDataTestIdSelector = dataTestId => `[data-testid="${dataTestId}"]`
2 |
3 | describe('Login', () => {
4 | beforeEach(async () => {
5 | console.log('beforeEach do teste');
6 | await page.goto(BASE_URL)
7 | })
8 |
9 | it('shows error message when password is not set', async () => {
10 | console.log('preenchendo email');
11 | await page.type(getDataTestIdSelector('email'), 'fulano@qa.com')
12 | console.log('preenchendo senha');
13 | await page.type(getDataTestIdSelector('senha'), 'teste')
14 | console.log('clicando entrar');
15 | await page.click(getDataTestIdSelector('entrar'))
16 | console.log('esperando \'logout\'');
17 | await page.waitForSelector(getDataTestIdSelector('logout'))
18 | })
19 |
20 | xit('successful login', async () => {
21 | await page.type(getDataTestIdSelector('email'), 'someuser@gmail.com')
22 | await page.type(getDataTestIdSelector('senha'), 'somepass')
23 | await page.click(getDataTestIdSelector('entrar'))
24 |
25 | await page.waitForSelector(getDataTestIdSelector('logout'))
26 |
27 | const url = await page.url()
28 | expect(url).toContain('/admin/home')
29 | })
30 | })
31 |
--------------------------------------------------------------------------------
/tests/jest-environment.js:
--------------------------------------------------------------------------------
1 | const PlaywrightEnvironment = require('jest-playwright-preset/lib/PlaywrightEnvironment').default
2 |
3 | class CustomEnvironment extends PlaywrightEnvironment {
4 | async setup() {
5 | await super.setup()
6 | await this.global.page.setDefaultTimeout(30000)
7 | }
8 |
9 | async teardown() {
10 | await this.global.page.waitForTimeout(2000)
11 | await super.teardown()
12 | }
13 | }
14 |
15 | module.exports = CustomEnvironment
16 |
--------------------------------------------------------------------------------
/tests/jest-playwright.config.js:
--------------------------------------------------------------------------------
1 |
2 | const lambdaLaunchOptions = {
3 | executablePath: "/usr/bin/chromium-browser",
4 | args: [
5 | "--autoplay-policy=user-gesture-required",
6 | "--disable-background-networking",
7 | "--disable-background-timer-throttling",
8 | "--disable-backgrounding-occluded-windows",
9 | "--disable-breakpad",
10 | "--disable-client-side-phishing-detection",
11 | "--disable-component-update",
12 | "--disable-default-apps",
13 | "--disable-dev-shm-usage",
14 | "--disable-domain-reliability",
15 | "--disable-extensions",
16 | "--disable-features=AudioServiceOutOfProcess",
17 | "--disable-hang-monitor",
18 | "--disable-ipc-flooding-protection",
19 | "--disable-notifications",
20 | "--disable-offer-store-unmasked-wallet-cards",
21 | "--disable-popup-blocking",
22 | "--disable-print-preview",
23 | "--disable-prompt-on-repost",
24 | "--disable-renderer-backgrounding",
25 | "--disable-setuid-sandbox",
26 | "--disable-speech-api",
27 | "--disable-sync",
28 | "--disk-cache-size=33554432",
29 | "--hide-scrollbars",
30 | "--ignore-gpu-blacklist",
31 | "--metrics-recording-only",
32 | "--mute-audio",
33 | "--no-default-browser-check",
34 | "--no-first-run",
35 | "--no-pings",
36 | "--no-sandbox",
37 | "--no-zygote",
38 | "--password-store=basic",
39 | "--use-gl=swiftshader",
40 | "--use-mock-keychain",
41 | "--single-process",
42 | "--disable-gpu",
43 | "--font-render-hinting=none",
44 | ],
45 | }
46 |
47 | module.exports = {
48 | browsers: ["chromium"],
49 | launchOptions: {
50 | headless: true,
51 | ...(process.env.IS_TEST_RUNNING_ON_LAMBDA === "true" ? lambdaLaunchOptions : null),
52 | },
53 | }
54 |
--------------------------------------------------------------------------------
/tests/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | name: 'play-e2e',
3 | displayName: 'e2e-play',
4 | globals: {
5 | BASE_URL: 'https://front.serverest.dev'
6 | },
7 | preset: "jest-playwright-preset",
8 | globalSetup: 'jest-playwright-preset/setup',
9 | globalTeardown: 'jest-playwright-preset/teardown',
10 | setupFilesAfterEnv: [
11 | './jest.setup.js',
12 | 'jest-playwright-preset/lib/extends.js',
13 | ],
14 | testEnvironment: './jest-environment.js',
15 | runner: 'jest-playwright-preset/runner',
16 | verbose: true,
17 | }
18 |
--------------------------------------------------------------------------------
/tests/jest.setup.js:
--------------------------------------------------------------------------------
1 | jest.setTimeout(29 * 1000)
--------------------------------------------------------------------------------
/tests/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "playwright-serverless",
3 | "private": true,
4 | "description": "E2E test with playwright",
5 | "author": "Paulo Gonçalves (https://www.linkedin.com/in/paulo-goncalves/)",
6 | "license": "GPL-3.0",
7 | "scripts": {
8 | "test": "jest"
9 | },
10 | "dependencies": {
11 | "jest": "27.0.6",
12 | "jest-playwright-preset": "1.7.0",
13 | "playwright": "1.14.0"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------