From 8fab954724942af0978738c796dfb5abb76627e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Skaar?= Date: Sun, 26 May 2024 20:30:50 +0200 Subject: [PATCH] =?UTF-8?q?Sm=C3=A5=20endringer=20i=20del[2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- del_2/Innhold.md | 9 ++ del_2/Kurspresentasjon_2.pptx | 4 +- .../Bekk.Oppdrift.SeleniumExample.csproj | 14 +- del_2/websocket/nodejs/package-lock.json | 148 ++++++++++++++++++ del_2/websocket/nodejs/server.js | 8 +- 5 files changed, 170 insertions(+), 13 deletions(-) create mode 100644 del_2/websocket/nodejs/package-lock.json diff --git a/del_2/Innhold.md b/del_2/Innhold.md index 6eb4663..9869386 100755 --- a/del_2/Innhold.md +++ b/del_2/Innhold.md @@ -414,6 +414,15 @@ ved å bruke sitt eget språk. - [Zephyr Enterprise](https://smartbear.com/test-management/zephyr-enterprise/?utm_medium=paid_listing&utm_source=sth&utm_campaign=best-bdd-tools-ze) - [Fitnesse](https://fitnesse.org/) +### Arkitekturtester + +Dette er testrammeverk som lar deg skrive tester som kan sikre arkitekturens integritet. +Den kan overholde ting som at referanser går riktig vei, og ikke hopper over et lag. Den kan også håndheve navnekonvensjoner. + +- [ArchUnit](https://www.archunit.org/) +- [ArchUnitNET (en port til dotnet)](https://archunitnet.readthedocs.io/en/latest/) +- [Konsist (Linter for Kotlin som også har lignende funksjonalitet)](https://docs.konsist.lemonappdev.com/) + ## Enhetstester Enhetstester (unit test) er tester som verifiserer og dokumenterer koden. diff --git a/del_2/Kurspresentasjon_2.pptx b/del_2/Kurspresentasjon_2.pptx index 34c20b4..85084e7 100755 --- a/del_2/Kurspresentasjon_2.pptx +++ b/del_2/Kurspresentasjon_2.pptx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc552fbae562d990da9694377266ae57edcab1b2bf3b693b7d02e1b02781dd56 -size 31912831 +oid sha256:fd3b93cd647959eda2af989685d04abc2be411edcff4ad5b4171ee165f3bf3e7 +size 32150803 diff --git a/del_2/ui-testing/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample.csproj b/del_2/ui-testing/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample.csproj index 7df9544..836d170 100644 --- a/del_2/ui-testing/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample.csproj +++ b/del_2/ui-testing/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample/Bekk.Oppdrift.SeleniumExample.csproj @@ -10,18 +10,18 @@ - + - - - + + + - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/del_2/websocket/nodejs/package-lock.json b/del_2/websocket/nodejs/package-lock.json new file mode 100644 index 0000000..a8a06a3 --- /dev/null +++ b/del_2/websocket/nodejs/package-lock.json @@ -0,0 +1,148 @@ +{ + "name": "websocket-demo", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "websocket-demo", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "serve-handler": "^6.1.5", + "ws": "^8.12.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/del_2/websocket/nodejs/server.js b/del_2/websocket/nodejs/server.js index 6227e39..0cffb55 100644 --- a/del_2/websocket/nodejs/server.js +++ b/del_2/websocket/nodejs/server.js @@ -1,4 +1,4 @@ -const WebSocket = require("ws"); +const webSocket = require("ws"); const http = require("http"); const port = 8080; @@ -18,7 +18,7 @@ const apiServer = http.createServer((req, res) => { } }); -const socketServer = new WebSocket.Server({ server: apiServer }); +const socketServer = new webSocket.Server({ server: apiServer }); let sockets = []; @@ -39,8 +39,8 @@ socketServer.on("connection", (socket, req) => { socket.onerror = (e) => console.error(`Some error: ${e}`); }); -function sendToSockets(txt){ - sockets.forEach((s) => s.send(txt)); +function sendToSockets(txt) { + sockets.forEach((s) => s.send(txt)); } console.info(`Listening to http://localhost:${port}/`);