Skip to content

Commit 66fe663

Browse files
committed
feat: add playwright
1 parent 966e9cc commit 66fe663

File tree

5 files changed

+155
-2
lines changed

5 files changed

+155
-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
@@ -58,6 +58,7 @@
5858
"istanbul-badges-readme": "^1.2.0",
5959
"leaked-handles": "^5.2.0",
6060
"parcel-bundler": "^1.12.4",
61+
"playwright": "^1.8.0",
6162
"prettier": "^2.0.5",
6263
"stylelint": "^13.0.0",
6364
"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

+104-2
Original file line numberDiff line numberDiff line change
@@ -1835,6 +1835,11 @@ buffer-alloc@^1.2.0:
18351835
buffer-alloc-unsafe "^1.1.0"
18361836
buffer-fill "^1.0.0"
18371837

1838+
buffer-crc32@~0.2.3:
1839+
version "0.2.13"
1840+
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
1841+
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
1842+
18381843
18391844
version "0.0.1"
18401845
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
@@ -2183,6 +2188,11 @@ commander@^5.0.0:
21832188
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
21842189
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
21852190

2191+
commander@^6.1.0:
2192+
version "6.2.1"
2193+
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
2194+
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
2195+
21862196
component-emitter@^1.2.1:
21872197
version "1.3.0"
21882198
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -3257,6 +3267,17 @@ extglob@^2.0.4:
32573267
snapdragon "^0.8.1"
32583268
to-regex "^3.0.1"
32593269

3270+
extract-zip@^2.0.1:
3271+
version "2.0.1"
3272+
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
3273+
integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
3274+
dependencies:
3275+
debug "^4.1.1"
3276+
get-stream "^5.1.0"
3277+
yauzl "^2.10.0"
3278+
optionalDependencies:
3279+
"@types/yauzl" "^2.9.1"
3280+
32603281
32613282
version "1.3.0"
32623283
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -3345,6 +3366,13 @@ fault@^1.0.1:
33453366
dependencies:
33463367
format "^0.2.0"
33473368

3369+
fd-slicer@~1.1.0:
3370+
version "1.1.0"
3371+
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
3372+
integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
3373+
dependencies:
3374+
pend "~1.2.0"
3375+
33483376
file-entry-cache@^5.0.1:
33493377
version "5.0.1"
33503378
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
@@ -3559,6 +3587,13 @@ get-stdin@^8.0.0:
35593587
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
35603588
integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
35613589

3590+
get-stream@^5.1.0:
3591+
version "5.2.0"
3592+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
3593+
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
3594+
dependencies:
3595+
pump "^3.0.0"
3596+
35623597
get-uri@3:
35633598
version "3.0.2"
35643599
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
@@ -3667,7 +3702,7 @@ gonzales-pe@^4.3.0:
36673702
dependencies:
36683703
minimist "^1.2.5"
36693704

3670-
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
3705+
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:
36713706
version "4.2.4"
36723707
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
36733708
integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
@@ -4370,6 +4405,11 @@ istanbul-badges-readme@^1.2.0:
43704405
resolved "https://registry.yarnpkg.com/istanbul-badges-readme/-/istanbul-badges-readme-1.2.0.tgz#f6dc226fb2ef498b1743ca15ae2dd82ccd3b0c28"
43714406
integrity sha512-7yU9tFbl7IsqlgfFF52G1fj7w2Z2k+UykVrCCIAQ8pnezZIIwxtAD079cIcqsbyCH7gCAALhiW3waHv9C24vrg==
43724407

4408+
jpeg-js@^0.4.2:
4409+
version "0.4.3"
4410+
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
4411+
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
4412+
43734413
js-tokens@^4.0.0:
43744414
version "4.0.0"
43754415
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -4822,6 +4862,11 @@ [email protected]:
48224862
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
48234863
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
48244864

4865+
mime@^2.4.6:
4866+
version "2.5.0"
4867+
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.0.tgz#2b4af934401779806ee98026bb42e8c1ae1876b1"
4868+
integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==
4869+
48254870
mimic-fn@^1.0.0:
48264871
version "1.2.0"
48274872
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -5515,6 +5560,11 @@ pem@^1.14.2:
55155560
os-tmpdir "^1.0.1"
55165561
which "^2.0.2"
55175562

5563+
pend@~1.2.0:
5564+
version "1.2.0"
5565+
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
5566+
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
5567+
55185568
performance-now@^2.1.0:
55195569
version "2.1.0"
55205570
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
@@ -5542,11 +5592,34 @@ pkg-dir@^2.0.0:
55425592
dependencies:
55435593
find-up "^2.1.0"
55445594

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

5618+
pngjs@^5.0.0:
5619+
version "5.0.0"
5620+
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
5621+
integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
5622+
55505623
posix-character-classes@^0.1.0:
55515624
version "0.1.1"
55525625
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -6027,11 +6100,20 @@ process@^0.11.10:
60276100
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
60286101
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
60296102

6030-
progress@^2.0.0:
6103+
progress@^2.0.0, progress@^2.0.3:
60316104
version "2.0.3"
60326105
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
60336106
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
60346107

6108+
proper-lockfile@^4.1.1:
6109+
version "4.1.2"
6110+
resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
6111+
integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
6112+
dependencies:
6113+
graceful-fs "^4.2.4"
6114+
retry "^0.12.0"
6115+
signal-exit "^3.0.2"
6116+
60356117
proxy-addr@~2.0.5:
60366118
version "2.0.6"
60376119
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
@@ -6526,6 +6608,11 @@ ret@~0.1.10:
65266608
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
65276609
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
65286610

6611+
retry@^0.12.0:
6612+
version "0.12.0"
6613+
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
6614+
integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
6615+
65296616
reusify@^1.0.4:
65306617
version "1.0.4"
65316618
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -6555,6 +6642,13 @@ rimraf@^2.6.2:
65556642
dependencies:
65566643
glob "^7.1.3"
65576644

6645+
rimraf@^3.0.2:
6646+
version "3.0.2"
6647+
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
6648+
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
6649+
dependencies:
6650+
glob "^7.1.3"
6651+
65586652
ripemd160@^2.0.0, ripemd160@^2.0.1:
65596653
version "2.0.2"
65606654
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
@@ -8090,6 +8184,14 @@ yarn@^1.22.4:
80908184
resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c"
80918185
integrity sha512-IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==
80928186

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

0 commit comments

Comments
 (0)