Skip to content

Commit 9f43e64

Browse files
committed
feat: add playwright
1 parent 1fcb0c3 commit 9f43e64

File tree

5 files changed

+167
-2
lines changed

5 files changed

+167
-2
lines changed

.github/workflows/ci.yaml

+19
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,22 @@ jobs:
144144
with:
145145
name: release-images
146146
path: ./release-images
147+
148+
e2e:
149+
needs: linux-amd64
150+
runs-on: ubuntu-latest
151+
steps:
152+
- uses: actions/checkout@v1
153+
- name: Download release packages
154+
uses: actions/download-artifact@v2
155+
with:
156+
name: release-packages
157+
path: ./release-packages
158+
- name: See working directory and files
159+
run: |
160+
echo "This better print"
161+
pwd
162+
ls
163+
- name: Untar code-server file
164+
run: |
165+
tar -xzf release-packages/code-server*-linux-amd64.tar.gz

ci/images/playwright/Dockerfile

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Use the playwright Docker image
2+
FROM mcr.microsoft.com/playwright:bionic
3+
4+
## NOTES
5+
# Somehow get code-server artifact
6+
# Run it locally on port 8080
7+
# so that it can be accessed in our tests
8+
9+
# It should build the project
10+
# Start code server and then we should run the tests

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
"istanbul-badges-readme": "^1.2.0",
5858
"leaked-handles": "^5.2.0",
5959
"parcel-bundler": "^1.12.4",
60+
"playwright": "^1.8.0",
6061
"prettier": "^2.0.5",
6162
"stylelint": "^13.0.0",
6263
"stylelint-config-recommended": "^3.0.0",

test/e2e.test.ts

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { chromium, Page, Browser } from "playwright"
2+
3+
let browser: Browser
4+
let page: Page
5+
beforeAll(async () => {
6+
browser = await chromium.launch()
7+
})
8+
afterAll(async () => {
9+
await browser.close()
10+
})
11+
beforeEach(async () => {
12+
page = await browser.newPage()
13+
})
14+
afterEach(async () => {
15+
await page.close()
16+
})
17+
18+
it("should work", async () => {
19+
await page.goto("https://www.example.com/")
20+
expect(await page.title()).toBe("Example Domain")
21+
})

yarn.lock

+116-2
Original file line numberDiff line numberDiff line change
@@ -1201,6 +1201,13 @@
12011201
dependencies:
12021202
"@types/node" "*"
12031203

1204+
"@types/yauzl@^2.9.1":
1205+
version "2.9.1"
1206+
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
1207+
integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
1208+
dependencies:
1209+
"@types/node" "*"
1210+
12041211
"@typescript-eslint/eslint-plugin@^4.7.0":
12051212
version "4.7.0"
12061213
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz#85c9bbda00c0cb604d3c241f7bc7fb171a2d3479"
@@ -1830,6 +1837,11 @@ buffer-alloc@^1.2.0:
18301837
buffer-alloc-unsafe "^1.1.0"
18311838
buffer-fill "^1.0.0"
18321839

1840+
buffer-crc32@~0.2.3:
1841+
version "0.2.13"
1842+
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
1843+
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
1844+
18331845
buffer-equal@0.0.1:
18341846
version "0.0.1"
18351847
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
@@ -2178,6 +2190,11 @@ commander@^5.0.0:
21782190
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
21792191
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
21802192

2193+
commander@^6.1.0:
2194+
version "6.2.1"
2195+
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
2196+
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
2197+
21812198
component-emitter@^1.2.1:
21822199
version "1.3.0"
21832200
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -3252,6 +3269,17 @@ extglob@^2.0.4:
32523269
snapdragon "^0.8.1"
32533270
to-regex "^3.0.1"
32543271

3272+
extract-zip@^2.0.1:
3273+
version "2.0.1"
3274+
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
3275+
integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
3276+
dependencies:
3277+
debug "^4.1.1"
3278+
get-stream "^5.1.0"
3279+
yauzl "^2.10.0"
3280+
optionalDependencies:
3281+
"@types/yauzl" "^2.9.1"
3282+
32553283
extsprintf@1.3.0:
32563284
version "1.3.0"
32573285
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -3340,6 +3368,13 @@ fault@^1.0.1:
33403368
dependencies:
33413369
format "^0.2.0"
33423370

3371+
fd-slicer@~1.1.0:
3372+
version "1.1.0"
3373+
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
3374+
integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
3375+
dependencies:
3376+
pend "~1.2.0"
3377+
33433378
file-entry-cache@^5.0.1:
33443379
version "5.0.1"
33453380
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -3554,6 +3589,13 @@ get-stdin@^8.0.0:
35543589
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
35553590
integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
35563591

3592+
get-stream@^5.1.0:
3593+
version "5.2.0"
3594+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
3595+
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
3596+
dependencies:
3597+
pump "^3.0.0"
3598+
35573599
get-uri@3:
35583600
version "3.0.2"
35593601
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
@@ -3662,7 +3704,7 @@ gonzales-pe@^4.3.0:
36623704
dependencies:
36633705
minimist "^1.2.5"
36643706

3665-
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
3707+
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
36663708
version "4.2.4"
36673709
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
36683710
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
@@ -4365,6 +4407,11 @@ istanbul-badges-readme@^1.2.0:
43654407
resolved "https://registry.yarnpkg.com/istanbul-badges-readme/-/istanbul-badges-readme-1.2.0.tgz#f6dc226fb2ef498b1743ca15ae2dd82ccd3b0c28"
43664408
integrity sha512-7yU9tFbl7IsqlgfFF52G1fj7w2Z2k+UykVrCCIAQ8pnezZIIwxtAD079cIcqsbyCH7gCAALhiW3waHv9C24vrg==
43674409

4410+
jpeg-js@^0.4.2:
4411+
version "0.4.3"
4412+
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
4413+
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
4414+
43684415
js-tokens@^4.0.0:
43694416
version "4.0.0"
43704417
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -4817,6 +4864,11 @@ mime@1.6.0:
48174864
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
48184865
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
48194866

4867+
mime@^2.4.6:
4868+
version "2.5.0"
4869+
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1"
4870+
integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==
4871+
48204872
mimic-fn@^1.0.0:
48214873
version "1.2.0"
48224874
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -5510,6 +5562,11 @@ pem@^1.14.2:
55105562
os-tmpdir "^1.0.1"
55115563
which "^2.0.2"
55125564

5565+
pend@~1.2.0:
5566+
version "1.2.0"
5567+
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
5568+
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
5569+
55135570
performance-now@^2.1.0:
55145571
version "2.1.0"
55155572
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -5537,11 +5594,34 @@ pkg-dir@^2.0.0:
55375594
dependencies:
55385595
find-up "^2.1.0"
55395596

5597+
playwright@^1.8.0:
5598+
version "1.8.0"
5599+
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.8.0.tgz#8eca2250967ee892b9fdfec44e2358455ab0f8e3"
5600+
integrity sha512-urMJDLX92KawbkWKrt3chVVBPQsuuNwlS5St7I5YQENXAEItoyUqX7FjiYaoPgXifKqe1+BKC+7pBAq1QUkgSw==
5601+
dependencies:
5602+
commander "^6.1.0"
5603+
debug "^4.1.1"
5604+
extract-zip "^2.0.1"
5605+
https-proxy-agent "^5.0.0"
5606+
jpeg-js "^0.4.2"
5607+
mime "^2.4.6"
5608+
pngjs "^5.0.0"
5609+
progress "^2.0.3"
5610+
proper-lockfile "^4.1.1"
5611+
proxy-from-env "^1.1.0"
5612+
rimraf "^3.0.2"
5613+
ws "^7.3.1"
5614+
55405615
pn@^1.1.0:
55415616
version "1.1.0"
55425617
resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
55435618
integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
55445619

5620+
pngjs@^5.0.0:
5621+
version "5.0.0"
5622+
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
5623+
integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
5624+
55455625
posix-character-classes@^0.1.0:
55465626
version "0.1.1"
55475627
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -6022,11 +6102,20 @@ process@^0.11.10:
60226102
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
60236103
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
60246104

6025-
progress@^2.0.0:
6105+
progress@^2.0.0, progress@^2.0.3:
60266106
version "2.0.3"
60276107
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
60286108
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
60296109

6110+
proper-lockfile@^4.1.1:
6111+
version "4.1.2"
6112+
resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
6113+
integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
6114+
dependencies:
6115+
graceful-fs "^4.2.4"
6116+
retry "^0.12.0"
6117+
signal-exit "^3.0.2"
6118+
60306119
proxy-addr@~2.0.5:
60316120
version "2.0.6"
60326121
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
@@ -6521,6 +6610,11 @@ ret@~0.1.10:
65216610
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
65226611
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
65236612

6613+
retry@^0.12.0:
6614+
version "0.12.0"
6615+
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
6616+
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
6617+
65246618
reusify@^1.0.4:
65256619
version "1.0.4"
65266620
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -6550,6 +6644,13 @@ rimraf@^2.6.2:
65506644
dependencies:
65516645
glob "^7.1.3"
65526646

6647+
rimraf@^3.0.2:
6648+
version "3.0.2"
6649+
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
6650+
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
6651+
dependencies:
6652+
glob "^7.1.3"
6653+
65536654
ripemd160@^2.0.0, ripemd160@^2.0.1:
65546655
version "2.0.2"
65556656
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
@@ -8022,6 +8123,11 @@ ws@^7.2.0:
80228123
resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
80238124
integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
80248125

8126+
ws@^7.3.1:
8127+
version "7.4.2"
8128+
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd"
8129+
integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==
8130+
80258131
x-is-string@^0.1.0:
80268132
version "0.1.0"
80278133
resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
@@ -8080,6 +8186,14 @@ yarn@^1.22.4:
80808186
resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c"
80818187
integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==
80828188

8189+
yauzl@^2.10.0:
8190+
version "2.10.0"
8191+
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
8192+
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
8193+
dependencies:
8194+
buffer-crc32 "~0.2.3"
8195+
fd-slicer "~1.1.0"
8196+
80838197
yn@3.1.1:
80848198
version "3.1.1"
80858199
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"

0 commit comments

Comments
 (0)