diff --git a/.eslintrc.js b/.eslintrc.js index abf2e6c..1f19751 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,7 +3,6 @@ module.exports = { extends: [ "eslint:recommended", "plugin:vue/recommended", - "plugin:prettier/recommended", "plugin:security/recommended" ], parserOptions: { diff --git a/.github/workflows/e2e-test.yaml b/.github/workflows/e2e-test.yaml new file mode 100644 index 0000000..2013d89 --- /dev/null +++ b/.github/workflows/e2e-test.yaml @@ -0,0 +1,25 @@ +name: End to end test + +on: push + +jobs: + e2e-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Read .nvmrc + run: echo NVMRC=`cat .nvmrc` >> $GITHUB_ENV + + - name: Setup node + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NVMRC }} + cache: 'yarn' + + - run: yarn install + + - name: Install operating system dependencies + run: npx playwright install-deps + + - run: npm run test:e2e diff --git a/.github/workflows/yarn.yml b/.github/workflows/yarn.yml index 937a87b..0a6a71a 100644 --- a/.github/workflows/yarn.yml +++ b/.github/workflows/yarn.yml @@ -7,7 +7,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v2-beta + + - name: Read .nvmrc + run: echo NVMRC=`cat .nvmrc` >> $GITHUB_ENV + + - name: Setup node + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NVMRC }} - name: Get yarn cache directory path id: yarn-cache-dir-path diff --git a/.gitignore b/.gitignore index 53d885d..60c0cad 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,4 @@ yarn-error.log* *.sln *.sw* -.test-results +test-results diff --git a/README.md b/README.md index 98d3ab6..9be9d62 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,16 @@ yarn run serve yarn run build ``` -#### Run your tests +#### Run unit tests ``` yarn run test:unit ``` +#### Run end-to-end UI tests +``` +yarn run test:e2e +``` + #### Lints and fixes files ``` yarn run lint diff --git a/package.json b/package.json index 3fea229..dbb5af6 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "build": "vue-cli-service build", "deploy": "gh-pages -b gh-pages -d dist -a", "lint": "vue-cli-service lint", - "test:unit": "vue-cli-service test:unit" + "test:unit": "vue-cli-service test:unit", + "test:e2e": "playwright test" }, "dependencies": { "base64-js": "^1.3.0", @@ -27,12 +28,14 @@ "vue-router": "^3.0.1" }, "devDependencies": { + "@playwright/test": "^1.16.3", + "@types/fluent-ffmpeg": "^2.1.19", "@types/jest": "^26.0.24", "@typescript-eslint/parser": "^4.31.2", - "@vue/cli-plugin-eslint": "^4.5.13", - "@vue/cli-plugin-typescript": "^4.5.13", - "@vue/cli-plugin-unit-jest": "^4.5.13", - "@vue/cli-service": "^3.1.4", + "@vue/cli-plugin-eslint": "^4.5.15", + "@vue/cli-plugin-typescript": "^4.5.15", + "@vue/cli-plugin-unit-jest": "^4.5.15", + "@vue/cli-service": "^4.5.15", "@vue/test-utils": "^1.0.0-beta.20", "eslint": "^5.8.0", "eslint-config-prettier": "^6.11.0", @@ -40,10 +43,12 @@ "eslint-plugin-security": "^1.4.0", "eslint-plugin-vue": "^6.2.2", "fast-text-encoding": "^1.0.0", + "fluent-ffmpeg": "^2.1.2", "gh-pages": "^2.0.1", "html-webpack-inline-source-plugin": "1.0.0-beta.2", "html-webpack-plugin": "4.0.0-beta.4", "jest-junit": "^6.0.1", + "playwright": "^1.16.3", "ts-jest": "^26.4.4", "vue-template-compiler": "^2.5.17", "vuetype": "^0.3.2" @@ -58,7 +63,7 @@ "last 2 versions" ], "jest-junit": { - "outputDirectory": ".test-results/jest", + "outputDirectory": "test-results/jest", "oputputName": "results.xml" } } diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..45c7bdd --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,13 @@ +import { PlaywrightTestConfig } from "@playwright/test"; +const config: PlaywrightTestConfig = { + webServer: { + command: "NODE_ENV=test npm run serve -- --port 8888", + port: 8888, + reuseExistingServer: false + }, + testDir: "tests/e2e", + use: { + browserName: "chromium" + } +}; +export default config; diff --git a/src/App.vue b/src/App.vue index 143b4ca..7b8faee 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,10 +15,10 @@
- + Create - + Restore
diff --git a/src/views/Combine.vue b/src/views/Combine.vue index aa506d3..d81d4d9 100644 --- a/src/views/Combine.vue +++ b/src/views/Combine.vue @@ -14,6 +14,7 @@

-