mirror of https://github.com/OpenVidu/openvidu.git
ov-components: Added unit tests
parent
9a7a2e3adb
commit
52422fb58a
|
@ -31,14 +31,12 @@
|
|||
"@angular/compiler-cli": "18.2.5",
|
||||
"@angular/elements": "18.2.5",
|
||||
"@compodoc/compodoc": "^1.1.25",
|
||||
"@types/chai": "4.3.19",
|
||||
"@types/dom-mediacapture-transform": "0.1.9",
|
||||
"@types/dom-webcodecs": "0.1.11",
|
||||
"@types/mocha": "9.1.1",
|
||||
"@types/jasmine": "^5.1.4",
|
||||
"@types/node": "20.12.14",
|
||||
"@types/selenium-webdriver": "4.1.16",
|
||||
"@types/ws": "^8.5.12",
|
||||
"chai": "4.3.10",
|
||||
"chromedriver": "129.0.0",
|
||||
"concat": "^1.0.3",
|
||||
"cross-env": "^7.0.3",
|
||||
|
@ -58,7 +56,6 @@
|
|||
"karma-mocha-reporter": "2.2.5",
|
||||
"karma-notify-reporter": "1.3.0",
|
||||
"lint-staged": "^15.2.10",
|
||||
"mocha": "9.2.2",
|
||||
"ng-packagr": "18.2.1",
|
||||
"npm-watch": "^0.13.0",
|
||||
"prettier": "3.3.3",
|
||||
|
@ -4842,12 +4839,6 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/chai": {
|
||||
"version": "4.3.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz",
|
||||
"integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/connect": {
|
||||
"version": "3.4.38",
|
||||
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
|
||||
|
@ -4942,6 +4933,12 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/jasmine": {
|
||||
"version": "5.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz",
|
||||
"integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/json-schema": {
|
||||
"version": "7.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
|
||||
|
@ -4954,12 +4951,6 @@
|
|||
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mocha": {
|
||||
"version": "9.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
|
||||
"integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mute-stream": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz",
|
||||
|
@ -5084,12 +5075,6 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@ungap/promise-all-settled": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
|
||||
"integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vitejs/plugin-basic-ssl": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz",
|
||||
|
@ -5587,15 +5572,6 @@
|
|||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/assertion-error": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
||||
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/ast-types": {
|
||||
"version": "0.13.4",
|
||||
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
|
||||
|
@ -5983,12 +5959,6 @@
|
|||
"base64-js": "^1.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/browser-stdout": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
||||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.23.3",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz",
|
||||
|
@ -6159,18 +6129,6 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/camelcase": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
|
||||
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001663",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz",
|
||||
|
@ -6191,24 +6149,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"node_modules/chai": {
|
||||
"version": "4.3.10",
|
||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz",
|
||||
"integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"assertion-error": "^1.1.0",
|
||||
"check-error": "^1.0.3",
|
||||
"deep-eql": "^4.1.3",
|
||||
"get-func-name": "^2.0.2",
|
||||
"loupe": "^2.3.6",
|
||||
"pathval": "^1.1.1",
|
||||
"type-detect": "^4.0.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
|
@ -6229,18 +6169,6 @@
|
|||
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/check-error": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
|
||||
"integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-func-name": "^2.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/cheerio": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz",
|
||||
|
@ -7285,30 +7213,6 @@
|
|||
"callsite": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/decamelize": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
|
||||
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/deep-eql": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
|
||||
"integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"type-detect": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/deep-equal": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
|
||||
|
@ -7627,15 +7531,6 @@
|
|||
"integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/diff": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
|
||||
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dns-packet": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
|
||||
|
@ -8960,6 +8855,7 @@
|
|||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
||||
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"locate-path": "^6.0.0",
|
||||
"path-exists": "^4.0.0"
|
||||
|
@ -9208,15 +9104,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/get-func-name": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
|
||||
"integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/get-intrinsic": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
|
||||
|
@ -9408,15 +9295,6 @@
|
|||
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/growl": {
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
||||
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4.x"
|
||||
}
|
||||
},
|
||||
"node_modules/growly": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
|
||||
|
@ -11892,6 +11770,7 @@
|
|||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
||||
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"p-locate": "^5.0.0"
|
||||
},
|
||||
|
@ -12111,15 +11990,6 @@
|
|||
"integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/loupe": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
|
||||
"integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-func-name": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
|
@ -12579,350 +12449,6 @@
|
|||
"mkdirp": "bin/cmd.js"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
|
||||
"integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@ungap/promise-all-settled": "1.1.2",
|
||||
"ansi-colors": "4.1.1",
|
||||
"browser-stdout": "1.3.1",
|
||||
"chokidar": "3.5.3",
|
||||
"debug": "4.3.3",
|
||||
"diff": "5.0.0",
|
||||
"escape-string-regexp": "4.0.0",
|
||||
"find-up": "5.0.0",
|
||||
"glob": "7.2.0",
|
||||
"growl": "1.10.5",
|
||||
"he": "1.2.0",
|
||||
"js-yaml": "4.1.0",
|
||||
"log-symbols": "4.1.0",
|
||||
"minimatch": "4.2.1",
|
||||
"ms": "2.1.3",
|
||||
"nanoid": "3.3.1",
|
||||
"serialize-javascript": "6.0.0",
|
||||
"strip-json-comments": "3.1.1",
|
||||
"supports-color": "8.1.1",
|
||||
"which": "2.0.2",
|
||||
"workerpool": "6.2.0",
|
||||
"yargs": "16.2.0",
|
||||
"yargs-parser": "20.2.4",
|
||||
"yargs-unparser": "2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"_mocha": "bin/_mocha",
|
||||
"mocha": "bin/mocha"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/mochajs"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/ansi-colors": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
||||
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/chalk/node_modules/supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/chokidar": {
|
||||
"version": "3.5.3",
|
||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
||||
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"anymatch": "~3.1.2",
|
||||
"braces": "~3.0.2",
|
||||
"glob-parent": "~5.1.2",
|
||||
"is-binary-path": "~2.1.0",
|
||||
"is-glob": "~4.0.1",
|
||||
"normalize-path": "~3.0.0",
|
||||
"readdirp": "~3.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.10.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/cliui": {
|
||||
"version": "7.0.4",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"string-width": "^4.2.0",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wrap-ansi": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mocha/node_modules/debug": {
|
||||
"version": "4.3.3",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
|
||||
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/debug/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mocha/node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mocha/node_modules/escape-string-regexp": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
||||
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/glob": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
||||
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/glob/node_modules/minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/is-fullwidth-code-point": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/log-symbols": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
|
||||
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"chalk": "^4.1.0",
|
||||
"is-unicode-supported": "^0.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/minimatch": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
|
||||
"integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/serialize-javascript": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
|
||||
"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"randombytes": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/string-width": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/supports-color": {
|
||||
"version": "8.1.1",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
|
||||
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has-flag": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/wrap-ansi": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/mocha/node_modules/yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.30.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
|
||||
|
@ -13031,18 +12557,6 @@
|
|||
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
|
||||
"integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/natural-compare": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
|
@ -13997,6 +13511,7 @@
|
|||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"yocto-queue": "^0.1.0"
|
||||
},
|
||||
|
@ -14012,6 +13527,7 @@
|
|||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
|
||||
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"p-limit": "^3.0.2"
|
||||
},
|
||||
|
@ -14343,15 +13859,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/pathval": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
||||
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/pause-stream": {
|
||||
"version": "0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
|
||||
|
@ -16527,6 +16034,7 @@
|
|||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
|
@ -17187,15 +16695,6 @@
|
|||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/type-detect": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
|
||||
"integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/type-fest": {
|
||||
"version": "0.21.3",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
|
||||
|
@ -18862,12 +18361,6 @@
|
|||
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/workerpool": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
|
||||
"integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/wrap-ansi": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
|
@ -19115,38 +18608,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/yargs-parser": {
|
||||
"version": "20.2.4",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
|
||||
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
|
||||
"version": "20.2.9",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs-unparser": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
|
||||
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": "^6.0.0",
|
||||
"decamelize": "^4.0.0",
|
||||
"flat": "^5.0.2",
|
||||
"is-plain-obj": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs-unparser/node_modules/is-plain-obj": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
|
||||
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs/node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
|
@ -19209,6 +18678,7 @@
|
|||
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
|
||||
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
|
|
|
@ -23,14 +23,12 @@
|
|||
"@angular/compiler-cli": "18.2.5",
|
||||
"@angular/elements": "18.2.5",
|
||||
"@compodoc/compodoc": "^1.1.25",
|
||||
"@types/chai": "4.3.19",
|
||||
"@types/dom-mediacapture-transform": "0.1.9",
|
||||
"@types/dom-webcodecs": "0.1.11",
|
||||
"@types/mocha": "9.1.1",
|
||||
"@types/jasmine": "^5.1.4",
|
||||
"@types/node": "20.12.14",
|
||||
"@types/selenium-webdriver": "4.1.16",
|
||||
"@types/ws": "^8.5.12",
|
||||
"chai": "4.3.10",
|
||||
"chromedriver": "129.0.0",
|
||||
"concat": "^1.0.3",
|
||||
"cross-env": "^7.0.3",
|
||||
|
@ -50,7 +48,6 @@
|
|||
"karma-mocha-reporter": "2.2.5",
|
||||
"karma-notify-reporter": "1.3.0",
|
||||
"lint-staged": "^15.2.10",
|
||||
"mocha": "9.2.2",
|
||||
"ng-packagr": "18.2.1",
|
||||
"npm-watch": "^0.13.0",
|
||||
"prettier": "3.3.3",
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AdminDashboardComponent } from './admin-dashboard.component';
|
||||
|
||||
describe('DashboardComponent', () => {
|
||||
let component: AdminDashboardComponent;
|
||||
let fixture: ComponentFixture<AdminDashboardComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AdminDashboardComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AdminDashboardComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AdminLoginComponent } from './login.component';
|
||||
|
||||
describe('LoginComponent', () => {
|
||||
let component: AdminLoginComponent;
|
||||
let fixture: ComponentFixture<AdminLoginComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AdminLoginComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AdminLoginComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AudioWaveComponent } from './audio-wave.component';
|
||||
|
||||
describe('AudioWaveComponent', () => {
|
||||
let component: AudioWaveComponent;
|
||||
let fixture: ComponentFixture<AudioWaveComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AudioWaveComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AudioWaveComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AvatarProfileComponent } from './avatar-profile.component';
|
||||
|
||||
describe('AvatarProfileComponent', () => {
|
||||
let component: AvatarProfileComponent;
|
||||
let fixture: ComponentFixture<AvatarProfileComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AvatarProfileComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AvatarProfileComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CaptionsComponent } from './captions.component';
|
||||
|
||||
describe('CaptionsComponent', () => {
|
||||
let component: CaptionsComponent;
|
||||
let fixture: ComponentFixture<CaptionsComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ CaptionsComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CaptionsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,37 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { RemoteUserService, LocalUserService } from '../../../public-api';
|
||||
import { ChatService } from '../../services/chat/chat.service';
|
||||
import { ChatServiceMock } from '../../services/chat/chat.service.mock';
|
||||
import { LayoutService } from '../../services/layout/layout.service';
|
||||
import { LocalUserServiceMock } from '../../services/local-user/local-user.service.mock';
|
||||
import { RemoteUserServiceMock } from '../../services/remote-user/remote-user.service.mock';
|
||||
|
||||
import { LayoutComponent } from './layout.component';
|
||||
|
||||
describe('LayoutComponent', () => {
|
||||
let component: LayoutComponent;
|
||||
let fixture: ComponentFixture<LayoutComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ LayoutComponent ],
|
||||
providers: [
|
||||
{ provide: RemoteUserService, useClass: RemoteUserServiceMock },
|
||||
{ provide: LocalUserService, useClass: LocalUserServiceMock },
|
||||
{ provide: ChatService, useClass: ChatServiceMock },
|
||||
{ provide: LayoutService, useClass: LayoutService }
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(LayoutComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VideoComponent } from './media-element.component';
|
||||
|
||||
describe('VideoComponent', () => {
|
||||
let component: VideoComponent;
|
||||
let fixture: ComponentFixture<VideoComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ VideoComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VideoComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ActivitiesPanelComponent } from './activities-panel.component';
|
||||
|
||||
describe('ActivitiesPanelComponent', () => {
|
||||
let component: ActivitiesPanelComponent;
|
||||
let fixture: ComponentFixture<ActivitiesPanelComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ActivitiesPanelComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ActivitiesPanelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,23 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { BroadcastingActivityComponent } from './broadcasting-activity.component';
|
||||
|
||||
describe('BroadcastingActivityComponent', () => {
|
||||
let component: BroadcastingActivityComponent;
|
||||
let fixture: ComponentFixture<BroadcastingActivityComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ BroadcastingActivityComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(BroadcastingActivityComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { RecordingActivityComponent } from './recording-activity.component';
|
||||
|
||||
describe('RecordingActivityComponent', () => {
|
||||
let component: RecordingActivityComponent;
|
||||
let fixture: ComponentFixture<RecordingActivityComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ RecordingActivityComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(RecordingActivityComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { BackgroundEffectsPanelComponent } from './background-effects-panel.component';
|
||||
|
||||
describe('BackgroundEffectsPanelComponent', () => {
|
||||
let component: BackgroundEffectsPanelComponent;
|
||||
let fixture: ComponentFixture<BackgroundEffectsPanelComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ BackgroundEffectsPanelComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(BackgroundEffectsPanelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,27 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ChatService } from '../../../services/chat/chat.service';
|
||||
import { ChatServiceMock } from '../../../services/chat/chat.service.mock';
|
||||
|
||||
import { ChatPanelComponent } from './chat-panel.component';
|
||||
|
||||
describe('ChatPanelComponent', () => {
|
||||
let component: ChatPanelComponent;
|
||||
let fixture: ComponentFixture<ChatPanelComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ChatPanelComponent],
|
||||
providers: [{ provide: ChatService, useClass: ChatServiceMock }]
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ChatPanelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ParticipantPanelItemComponent } from './participant-panel-item.component';
|
||||
|
||||
describe('ParticipantPanelItemComponent', () => {
|
||||
let component: ParticipantPanelItemComponent;
|
||||
let fixture: ComponentFixture<ParticipantPanelItemComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ParticipantPanelItemComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ParticipantPanelItemComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ParticipantsPanelComponent } from './participants-panel.component';
|
||||
|
||||
describe('ParticipantsPanelComponent', () => {
|
||||
let component: ParticipantsPanelComponent;
|
||||
let fixture: ComponentFixture<ParticipantsPanelComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ParticipantsPanelComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ParticipantsPanelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { SettingsPanelComponent } from './settings-panel.component';
|
||||
|
||||
describe('SettingsPanelComponent', () => {
|
||||
let component: SettingsPanelComponent;
|
||||
let fixture: ComponentFixture<SettingsPanelComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ SettingsPanelComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SettingsPanelComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PreJoinComponent } from './pre-join.component';
|
||||
|
||||
describe('PreJoinComponent', () => {
|
||||
let component: PreJoinComponent;
|
||||
let fixture: ComponentFixture<PreJoinComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ PreJoinComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PreJoinComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,4 +1,7 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
|
||||
import { ActionService } from '../../services/action/action.service';
|
||||
import { ActionServiceMock } from '../../services/action/action.service.mock';
|
||||
|
||||
|
@ -7,26 +10,34 @@ import { ChatServiceMock } from '../../services/chat/chat.service.mock';
|
|||
|
||||
import { LoggerService } from '../../services/logger/logger.service';
|
||||
import { LoggerServiceMock } from '../../services/logger/logger.service.mock';
|
||||
import { ParticipantService } from '../../services/participant/participant.service';
|
||||
import { ParticipantServiceMock } from '../../services/participant/participant.service.mock';
|
||||
// import { ParticipantService } from '../../services/participant/participant.service';
|
||||
// import { ParticipantServiceMock } from '../../services/participant/participant.service.mock';
|
||||
import { PlatformService } from '../../services/platform/platform.service';
|
||||
import { PlatformServiceMock } from '../../services/platform/platform.service.mock';
|
||||
|
||||
import { SessionComponent } from './session.component';
|
||||
import { Room, RoomEvent } from 'livekit-client';
|
||||
import { TranslateService } from '../../services/translate/translate.service';
|
||||
import { TranslateServiceMock } from '../../services/translate/translate.service.mock';
|
||||
import { TranslatePipe } from '../../pipes/translate.pipe';
|
||||
|
||||
describe('SessionComponent', () => {
|
||||
let component: SessionComponent;
|
||||
let fixture: ComponentFixture<SessionComponent>;
|
||||
let actionService: ActionServiceMock;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [SessionComponent],
|
||||
declarations: [SessionComponent, TranslatePipe],
|
||||
imports: [MatProgressSpinnerModule, NoopAnimationsModule],
|
||||
providers: [
|
||||
{ provide: LoggerService, useClass: LoggerServiceMock },
|
||||
{ provide: ActionService, useClass: ActionServiceMock },
|
||||
{ provide: ParticipantService, useClass: ParticipantServiceMock },
|
||||
// { provide: ParticipantService, useClass: ParticipantServiceMock },
|
||||
{ provide: ChatService, useClass: ChatServiceMock },
|
||||
{ provide: PlatformService, useClass: PlatformServiceMock }
|
||||
{ provide: PlatformService, useClass: PlatformServiceMock },
|
||||
{ provide: TranslateService, useClass: TranslateServiceMock },
|
||||
{ provide: 'OPENVIDU_COMPONENTS_CONFIG', useValue: { production: false } }
|
||||
]
|
||||
}).compileComponents();
|
||||
});
|
||||
|
@ -34,10 +45,52 @@ describe('SessionComponent', () => {
|
|||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SessionComponent);
|
||||
component = fixture.componentInstance;
|
||||
actionService = TestBed.inject(ActionService);
|
||||
|
||||
// Espías para verificar las llamadas a los métodos de diálogo
|
||||
spyOn(actionService, 'openConnectionDialog').and.callThrough();
|
||||
spyOn(actionService, 'closeConnectionDialog').and.callThrough();
|
||||
|
||||
component.room = {
|
||||
on: jasmine.createSpy('on').and.callFake((event: RoomEvent, callback: () => void) => {
|
||||
// Guarda los callbacks para invocarlos manualmente
|
||||
if (event === RoomEvent.Reconnecting) {
|
||||
component.room['reconnectingCallback'] = callback;
|
||||
}
|
||||
if (event === RoomEvent.Reconnected) {
|
||||
component.room['reconnectedCallback'] = callback;
|
||||
}
|
||||
return component.room;
|
||||
}),
|
||||
removeAllListeners: jasmine.createSpy('removeAllListeners')
|
||||
} as unknown as Room;
|
||||
|
||||
component['subscribeToReconnection']();
|
||||
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
function emitReconnectingEvent() {
|
||||
component.room['reconnectingCallback']();
|
||||
}
|
||||
|
||||
function emitReconnectedEvent() {
|
||||
component.room['reconnectedCallback']();
|
||||
}
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should open the connection dialog', () => {
|
||||
emitReconnectingEvent();
|
||||
// Verifica que se haya abierto el diálogo
|
||||
expect(actionService.openConnectionDialog).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should close the connection dialog', () => {
|
||||
emitReconnectingEvent();
|
||||
emitReconnectedEvent();
|
||||
expect(actionService.closeConnectionDialog).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AudioDevicesComponent } from './audio-devices.component';
|
||||
|
||||
describe('AudioDevicesComponent', () => {
|
||||
let component: AudioDevicesComponent;
|
||||
let fixture: ComponentFixture<AudioDevicesComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ AudioDevicesComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(AudioDevicesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,24 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CaptionsSettingComponent } from './captions.component';
|
||||
|
||||
describe('CaptionsSettingComponent', () => {
|
||||
let component: CaptionsSettingComponent;
|
||||
let fixture: ComponentFixture<CaptionsSettingComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [CaptionsSettingComponent]
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(CaptionsSettingComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { LangSelectorComponent } from './lang-selector.component';
|
||||
|
||||
describe('LangSelectorComponent', () => {
|
||||
let component: LangSelectorComponent;
|
||||
let fixture: ComponentFixture<LangSelectorComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ LangSelectorComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(LangSelectorComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ParticipantNameInputComponent } from './participant-name-input.component';
|
||||
|
||||
describe('ParticipantNameInputComponent', () => {
|
||||
let component: ParticipantNameInputComponent;
|
||||
let fixture: ComponentFixture<ParticipantNameInputComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ParticipantNameInputComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ParticipantNameInputComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VideoDevicesComponent } from './video-devices.component';
|
||||
|
||||
describe('VideoDevicesComponent', () => {
|
||||
let component: VideoDevicesComponent;
|
||||
let fixture: ComponentFixture<VideoDevicesComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ VideoDevicesComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VideoDevicesComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,49 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { RemoteUserService, LocalUserService, WebrtcService } from '../../../public-api';
|
||||
import { CdkOverlayService } from '../../services/cdk-overlay/cdk-overlay.service';
|
||||
import { DocumentService } from '../../services/document/document.service';
|
||||
import { CdkOverlayServiceMock } from '../../services/cdk-overlay/cdk-overlay.service.mock';
|
||||
|
||||
import { DocumentServiceMock } from '../../services/document/document.service.mock';
|
||||
import { LayoutService } from '../../services/layout/layout.service';
|
||||
import { LocalUserServiceMock } from '../../services/local-user/local-user.service.mock';
|
||||
import { LayoutServiceMock } from '../../services/layout/layout.service.mock';
|
||||
|
||||
import { RemoteUserServiceMock } from '../../services/remote-user/remote-user.service.mock';
|
||||
import { StorageService } from '../../services/storage/storage.service';
|
||||
|
||||
import { StorageServiceMock } from '../../services/storage/storage.service.mock';
|
||||
|
||||
import { WebrtcServiceMock } from '../../services/webrtc/webrtc.service.mock';
|
||||
|
||||
import { ParticipantComponent } from './participant.component';
|
||||
|
||||
describe('ParticipantComponent', () => {
|
||||
let component: ParticipantComponent;
|
||||
let fixture: ComponentFixture<ParticipantComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ParticipantComponent],
|
||||
providers: [
|
||||
{ provide: DocumentService, useClass: DocumentServiceMock },
|
||||
{ provide: StorageService, useClass: StorageServiceMock },
|
||||
{ provide: RemoteUserService, useClass: RemoteUserServiceMock },
|
||||
{ provide: LocalUserService, useClass: LocalUserServiceMock },
|
||||
{ provide: WebrtcService, useClass: WebrtcServiceMock },
|
||||
{ provide: CdkOverlayService, useClass: CdkOverlayServiceMock },
|
||||
{ provide: LayoutService, useClass: LayoutServiceMock }
|
||||
]
|
||||
}).compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ParticipantComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,51 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ActionService } from '../../services/action/action.service';
|
||||
import { ActionServiceMock } from '../../services/action/action.service.mock';
|
||||
import { ChatService } from '../../services/chat/chat.service';
|
||||
import { ChatServiceMock } from '../../services/chat/chat.service.mock';
|
||||
import { DeviceService } from '../../services/device/device.service';
|
||||
import { DeviceServiceMock } from '../../services/device/device.service.mock';
|
||||
import { DocumentService } from '../../services/document/document.service';
|
||||
import { DocumentServiceMock } from '../../services/document/document.service.mock';
|
||||
import { LocalUserService } from '../../services/local-user/local-user.service';
|
||||
import { LocalUserServiceMock } from '../../services/local-user/local-user.service.mock';
|
||||
|
||||
import { LoggerService } from '../../services/logger/logger.service';
|
||||
import { LoggerServiceMock } from '../../services/logger/logger.service.mock';
|
||||
|
||||
import { WebrtcService } from '../../services/webrtc/webrtc.service';
|
||||
import { WebrtcServiceMock } from '../../services/webrtc/webrtc.service.mock';
|
||||
|
||||
import { ToolbarComponent } from './toolbar.component';
|
||||
|
||||
describe('ToolbarComponent', () => {
|
||||
let component: ToolbarComponent;
|
||||
let fixture: ComponentFixture<ToolbarComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ToolbarComponent ],
|
||||
providers: [
|
||||
{ provide: ActionService, useClass: ActionServiceMock },
|
||||
{ provide: ChatService, useClass: ChatServiceMock },
|
||||
{ provide: LocalUserService, useClass: LocalUserServiceMock },
|
||||
{ provide: DocumentService, useClass: DocumentServiceMock },
|
||||
{ provide: LoggerService, useClass: LoggerServiceMock },
|
||||
{ provide: DeviceService, useClass: DeviceServiceMock },
|
||||
{ provide: WebrtcService, useClass: WebrtcServiceMock }
|
||||
|
||||
]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ToolbarComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,25 +0,0 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VideoconferenceComponent } from './videoconference.component';
|
||||
|
||||
describe('VideoconferenceComponent', () => {
|
||||
let component: VideoconferenceComponent;
|
||||
let fixture: ComponentFixture<VideoconferenceComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ VideoconferenceComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(VideoconferenceComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -9,10 +9,10 @@ export class ActionServiceMock {
|
|||
|
||||
}
|
||||
|
||||
openDialog(titleMessage: string, descriptionMessage: string, allowClose = true) {
|
||||
openConnectionDialog(titleMessage: string, descriptionMessage: string, allowClose = true) {
|
||||
|
||||
}
|
||||
|
||||
closeDialog() {
|
||||
closeConnectionDialog() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,28 +1,81 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { fakeAsync, TestBed, tick } from '@angular/core/testing';
|
||||
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
||||
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
||||
|
||||
import { ActionService } from './action.service';
|
||||
import { TranslateService } from '../translate/translate.service';
|
||||
import { TranslateServiceMock } from '../translate/translate.service.mock';
|
||||
|
||||
export class MatDialogMock {
|
||||
open() {}
|
||||
close() {}
|
||||
open() {
|
||||
return { close: () => {} } as MatDialogRef<any>;
|
||||
}
|
||||
}
|
||||
|
||||
describe('ActionService', () => {
|
||||
let service: ActionService;
|
||||
let service: ActionService;
|
||||
let dialog: MatDialog;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatSnackBarModule],
|
||||
providers: [
|
||||
{ provide: MatDialog, useClass: MatDialogMock }
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [MatSnackBarModule],
|
||||
providers: [
|
||||
{ provide: MatDialog, useClass: MatDialogMock },
|
||||
{ provide: TranslateService, useClass: TranslateServiceMock },
|
||||
{ provide: 'OPENVIDU_COMPONENTS_CONFIG', useValue: { production: false } }
|
||||
]
|
||||
});
|
||||
service = TestBed.inject(ActionService);
|
||||
});
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
service = TestBed.inject(ActionService);
|
||||
dialog = TestBed.inject(MatDialog);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should open connection dialog', fakeAsync(() => {
|
||||
const dialogSpy = spyOn(dialog, 'open').and.callThrough();
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
expect(dialogSpy).toHaveBeenCalled();
|
||||
expect(service['isConnectionDialogOpen']).toBeTrue();
|
||||
}));
|
||||
|
||||
it('should not open connection dialog if one is already open', () => {
|
||||
service['isConnectionDialogOpen'] = true;
|
||||
const dialogSpy = spyOn(dialog, 'open').and.callThrough();
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
|
||||
expect(dialogSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should close connection dialog and reset state', fakeAsync(() => {
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
|
||||
tick(2000);
|
||||
|
||||
expect(service['isConnectionDialogOpen']).toBeTrue();
|
||||
|
||||
service.closeConnectionDialog();
|
||||
|
||||
expect(service['isConnectionDialogOpen']).toBeFalse();
|
||||
}));
|
||||
|
||||
it('should open connection dialog only once', fakeAsync(() => {
|
||||
// Spy on the dialog open method
|
||||
const dialogSpy = spyOn(dialog, 'open').and.callThrough();
|
||||
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
// Verify that the dialog has been called only once
|
||||
expect(dialogSpy).toHaveBeenCalledTimes(1);
|
||||
expect(service['isConnectionDialogOpen']).toBeTrue();
|
||||
|
||||
// Try to open the dialog again
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
service.openConnectionDialog('Test Title', 'Test Description', false);
|
||||
|
||||
// Verify that the dialog has been called only once
|
||||
expect(dialogSpy).toHaveBeenCalledTimes(1);
|
||||
}));
|
||||
});
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { BroadcastingService } from './broadcasting.service';
|
||||
|
||||
describe('BroadcastingService', () => {
|
||||
let service: BroadcastingService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(BroadcastingService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { CaptionService } from './caption.service';
|
||||
|
||||
describe('CaptionService', () => {
|
||||
let service: CaptionService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(CaptionService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,14 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class CdkOverlayServiceMock {
|
||||
|
||||
constructor() {}
|
||||
|
||||
setSelector(selector: string) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { CdkOverlayContainer } from '../../config/custom-cdk-overlay';
|
||||
|
||||
import { CdkOverlayService } from './cdk-overlay.service';
|
||||
|
||||
|
||||
export class CdkOverlayContainerMock {
|
||||
protected _createContainer(): void {}
|
||||
|
||||
setSelector(selector: string) {}
|
||||
private getElement(selector: string): Element {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
describe('CdkOverlayService', () => {
|
||||
let service: CdkOverlayService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [{ provide: CdkOverlayContainer, useClass: CdkOverlayContainerMock }]
|
||||
});
|
||||
service = TestBed.inject(CdkOverlayService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,31 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { ActionService } from '../action/action.service';
|
||||
import { ActionServiceMock } from '../action/action.service.mock';
|
||||
import { LocalUserService } from '../local-user/local-user.service';
|
||||
import { LocalUserServiceMock } from '../local-user/local-user.service.mock';
|
||||
import { LoggerService } from '../logger/logger.service';
|
||||
import { LoggerServiceMock } from '../logger/logger.service.mock';
|
||||
import { WebrtcService } from '../webrtc/webrtc.service';
|
||||
import { WebrtcServiceMock } from '../webrtc/webrtc.service.mock';
|
||||
|
||||
import { ChatService } from './chat.service';
|
||||
|
||||
describe('ChatService', () => {
|
||||
let service: ChatService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{ provide: LoggerService, useClass: LoggerServiceMock },
|
||||
{ provide: WebrtcService, useClass: WebrtcServiceMock },
|
||||
{ provide: LocalUserService, useClass: LocalUserServiceMock },
|
||||
{ provide: ActionService, useClass: ActionServiceMock }
|
||||
]
|
||||
});
|
||||
service = TestBed.inject(ChatService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
File diff suppressed because it is too large
Load Diff
|
@ -1,22 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
|
||||
@Injectable()
|
||||
export class DocumentServiceMock {
|
||||
constructor() {}
|
||||
|
||||
getHTMLElementByClassName(element: HTMLElement, className: string): HTMLElement {
|
||||
return null;
|
||||
}
|
||||
|
||||
toggleFullscreen(elementId: string) {}
|
||||
|
||||
removeAllBigElementClass() {}
|
||||
|
||||
removeBigElementClass(element: HTMLElement | Element) {}
|
||||
|
||||
toggleBigElementClass(element: HTMLElement | Element) {}
|
||||
|
||||
isSmallElement(element: HTMLElement | Element): boolean {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { DocumentService } from './document.service';
|
||||
|
||||
describe('DocumentService', () => {
|
||||
let service: DocumentService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(DocumentService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,36 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { LayoutClass, OpenViduLayout, OpenViduLayoutOptions } from '../../models/layout.model';
|
||||
import { DocumentService } from '../document/document.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class LayoutServiceMock {
|
||||
layoutWidthObs: Observable<number>;
|
||||
private _layoutWidthObs: BehaviorSubject<number> = new BehaviorSubject(0);
|
||||
private openviduLayout: OpenViduLayout;
|
||||
private openviduLayoutOptions: OpenViduLayoutOptions;
|
||||
|
||||
constructor() {}
|
||||
|
||||
initialize(timeout: number = null) {}
|
||||
|
||||
private _initialize() {}
|
||||
|
||||
getOptions(): OpenViduLayoutOptions {
|
||||
return null;
|
||||
}
|
||||
|
||||
update(timeout?: number) {}
|
||||
|
||||
getLayout() {
|
||||
return this.openviduLayout;
|
||||
}
|
||||
|
||||
clear() {
|
||||
this.openviduLayout = null;
|
||||
}
|
||||
|
||||
private sendLayoutWidthEvent() {}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { LayoutService } from './layout.service';
|
||||
|
||||
describe('LayoutService', () => {
|
||||
let service: LayoutService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(LayoutService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,22 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { LibraryConfigService } from '../library-config/library-config.service';
|
||||
import { LibraryConfigServiceMock } from '../library-config/library-config.service.mock';
|
||||
|
||||
import { LoggerService } from './logger.service';
|
||||
|
||||
describe('LoggerService', () => {
|
||||
let service: LoggerService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{ provide: LibraryConfigService, useClass: LibraryConfigServiceMock },
|
||||
]
|
||||
});
|
||||
service = TestBed.inject(LoggerService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,102 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { Session, PublisherProperties, OpenVidu, Publisher, Connection } from 'openvidu-browser';
|
||||
import { Signal } from '../../models/signal.model';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class OpenViduServiceMock {
|
||||
private OV: OpenVidu = null;
|
||||
private OVScreen: OpenVidu = null;
|
||||
|
||||
private webcamSession: Session = null;
|
||||
private screenSession: Session = null;
|
||||
|
||||
private videoSource = undefined;
|
||||
private audioSource = undefined;
|
||||
|
||||
private screenMediaStream: MediaStream = null;
|
||||
private webcamMediaStream: MediaStream = null;
|
||||
|
||||
|
||||
constructor() {}
|
||||
|
||||
initialize() {}
|
||||
|
||||
initSessions() {}
|
||||
|
||||
getWebcamSession(): Session {
|
||||
return null;
|
||||
}
|
||||
|
||||
initializeWebcamSession(): void {}
|
||||
|
||||
initializeScreenSession(): void {}
|
||||
|
||||
getScreenSession(): Session {
|
||||
return null;
|
||||
}
|
||||
|
||||
async connectWebcamSession(token: string): Promise<any> {}
|
||||
disconnectWebcamSession(): void {}
|
||||
|
||||
async connectScreenSession(token: string): Promise<any> {}
|
||||
disconnectScreenSession(): void {}
|
||||
|
||||
disconnect() {}
|
||||
|
||||
initPublisher(targetElement: string | HTMLElement, properties: PublisherProperties): Publisher {
|
||||
return null;
|
||||
}
|
||||
initPublisherAsync(targetElement: string | HTMLElement, properties: PublisherProperties): Promise<Publisher> {
|
||||
return null;
|
||||
}
|
||||
|
||||
destroyWebcamPublisher(): void {}
|
||||
|
||||
destroyScreenPublisher(): void {}
|
||||
|
||||
async publishWebcamPublisher(): Promise<any> {}
|
||||
unpublishWebcamPublisher(): void {}
|
||||
async publishScreenPublisher(): Promise<any> {}
|
||||
|
||||
unpublishScreenPublisher(): void {}
|
||||
publishWebcamVideo(active: boolean): void {}
|
||||
publishWebcamAudio(active: boolean): void {}
|
||||
publishScreenAudio(active: boolean): void {}
|
||||
replaceTrack(videoSource: string, audioSource: string, mirror: boolean = true): Promise<any> {
|
||||
return new Promise((resolve, reject) => {});
|
||||
}
|
||||
|
||||
sendSignal(type: Signal, connection?: Connection, data?: any): void {}
|
||||
|
||||
createPublisherProperties(
|
||||
videoSource: string | MediaStreamTrack | boolean,
|
||||
audioSource: string | MediaStreamTrack | boolean,
|
||||
publishVideo: boolean,
|
||||
publishAudio: boolean,
|
||||
mirror: boolean
|
||||
): PublisherProperties {
|
||||
return {};
|
||||
}
|
||||
|
||||
async replaceScreenTrack() {}
|
||||
|
||||
stopAudioTracks(mediaStream: MediaStream) {}
|
||||
|
||||
stopVideoTracks(mediaStream: MediaStream) {}
|
||||
|
||||
needSendNicknameSignal(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
isMyOwnConnection(connectionId: string): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
getSessionOfUserConnected(): Session {
|
||||
return null;
|
||||
}
|
||||
|
||||
private stopScreenTracks() {}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { LoggerService } from '../logger/logger.service';
|
||||
import { LoggerServiceMock } from '../logger/logger.service.mock';
|
||||
|
||||
import { LocalUserService } from '../local-user/local-user.service';
|
||||
import { LocalUserServiceMock } from '../local-user/local-user.service.mock';
|
||||
import { OpenViduService } from './openvidu.service';
|
||||
import { PlatformService } from '../platform/platform.service';
|
||||
import { PlatformServiceMock } from '../platform/platform.service.mock';
|
||||
import { LibraryConfigService } from '../library-config/library-config.service';
|
||||
import { LibraryConfigServiceMock } from '../library-config/library-config.service.mock';
|
||||
|
||||
|
||||
describe('OpenViduService', () => {
|
||||
let service: OpenViduService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
{ provide: LoggerService, useClass: LoggerServiceMock },
|
||||
{ provide: LocalUserService, useClass: LocalUserServiceMock },
|
||||
{ provide: PlatformService, useClass: PlatformServiceMock },
|
||||
{ provide: LibraryConfigService, useClass: LibraryConfigServiceMock }
|
||||
]
|
||||
});
|
||||
service = TestBed.inject(OpenViduService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PanelService } from './panel.service';
|
||||
|
||||
describe('SidenavMenuService', () => {
|
||||
let service: PanelService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(PanelService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,94 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { Observable, BehaviorSubject } from 'rxjs';
|
||||
import { ParticipantModel } from '../../models/participant.model';
|
||||
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ParticipantServiceMock {
|
||||
OVUsers: Observable<ParticipantModel[]>;
|
||||
screenShareState: Observable<boolean>;
|
||||
webcamVideoActive: Observable<boolean>;
|
||||
private _OVUsers = <BehaviorSubject<ParticipantModel[]>>new BehaviorSubject([]);
|
||||
private _screenShareState = <BehaviorSubject<boolean>>new BehaviorSubject(false);
|
||||
private _webcamVideoActive = <BehaviorSubject<boolean>>new BehaviorSubject(true);
|
||||
|
||||
|
||||
constructor() {
|
||||
this.OVUsers = this._OVUsers.asObservable();
|
||||
this.screenShareState = this._screenShareState.asObservable();
|
||||
this.webcamVideoActive = this._webcamVideoActive.asObservable();
|
||||
}
|
||||
|
||||
initialize() {}
|
||||
|
||||
|
||||
setWebcamPublisher(publisher: Publisher) {}
|
||||
|
||||
getScreenPublisher(): Publisher {
|
||||
return null;
|
||||
}
|
||||
|
||||
setScreenPublisher(publisher: Publisher) {}
|
||||
|
||||
enableWebcamUser() {}
|
||||
|
||||
disableWebcamUser() {}
|
||||
|
||||
enableScreenUser(screenPublisher: Publisher) {}
|
||||
|
||||
disableScreenUser() {}
|
||||
|
||||
updateUsersStatus() {}
|
||||
|
||||
clear() {}
|
||||
|
||||
isMyCameraEnabled(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
isOnlyMyScreenEnabled(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
hasCameraVideoActive(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
hasCameraAudioActive(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
hasScreenAudioActive(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
areBothEnabled(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
isOnlyMyCameraEnabled(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
isScreenShareEnabled(): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
updateUsersNickname(nickname: string) {}
|
||||
|
||||
getWebcamAvatar(): string {
|
||||
return '';
|
||||
}
|
||||
|
||||
getWebcamNickname(): string {
|
||||
return '';
|
||||
}
|
||||
|
||||
getScreenNickname() {}
|
||||
|
||||
resetUsersZoom() {}
|
||||
|
||||
toggleZoom(connectionId: string) {}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ParticipantService } from './participant.service';
|
||||
|
||||
describe('ParticipantService', () => {
|
||||
let service: ParticipantService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(ParticipantService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PlatformService } from './platform.service';
|
||||
|
||||
describe('PlatformService', () => {
|
||||
let service: PlatformService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(PlatformService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { RecordingService } from './recording.service';
|
||||
|
||||
describe('RecordingService', () => {
|
||||
let service: RecordingService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(RecordingService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,18 +0,0 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
|
||||
@Injectable()
|
||||
export class StorageServiceMock {
|
||||
store = {};
|
||||
|
||||
constructor() {}
|
||||
|
||||
public set(key: string, item: any) {
|
||||
this.store[key] = item;
|
||||
}
|
||||
public get(key: string): any {
|
||||
return this.store[key] || '{}';
|
||||
}
|
||||
public clear() {
|
||||
this.store = {};
|
||||
}
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
import { LoggerService } from '../logger/logger.service';
|
||||
import { LoggerServiceMock } from '../logger/logger.service.mock';
|
||||
|
||||
import { StorageService } from './storage.service';
|
||||
|
||||
describe('StorageService', () => {
|
||||
let service: StorageService;
|
||||
const key = 'key';
|
||||
const item = 'item';
|
||||
let store = {};
|
||||
let spyStoreGetItem;
|
||||
let spyStoreSetItem;
|
||||
let spyStoreClear;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({ providers: [{ provide: LoggerService, useClass: LoggerServiceMock }] });
|
||||
service = TestBed.inject(StorageService);
|
||||
spyStoreGetItem = spyOn(window.localStorage, 'getItem').and.callFake((keyFake) => {
|
||||
return store[keyFake] || '{}';
|
||||
});
|
||||
spyStoreSetItem = spyOn(window.localStorage, 'setItem').and.callFake((keyFake, value) => {
|
||||
store[keyFake] = value;
|
||||
});
|
||||
spyStoreClear = spyOn(window.localStorage, 'clear').and.callFake(() => {
|
||||
store = {};
|
||||
});
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should set an item', () => {
|
||||
const spyServiceSet = spyOn(service, 'set').and.callThrough();
|
||||
|
||||
service.set(key, item);
|
||||
|
||||
expect(spyServiceSet).toHaveBeenCalledWith(key, item);
|
||||
});
|
||||
|
||||
it('should get an item added', () => {
|
||||
const spyServiceSet = spyOn(service, 'set').and.callThrough();
|
||||
const spyServiceGet = spyOn(service, 'get').and.callThrough();
|
||||
|
||||
service.set(key, item);
|
||||
expect(spyServiceSet).toHaveBeenCalledWith(key, item);
|
||||
|
||||
const value = service.get(key);
|
||||
expect(spyServiceGet).toHaveBeenCalledWith(key);
|
||||
expect(value).toEqual(item);
|
||||
});
|
||||
|
||||
it('should clear local storage', () => {
|
||||
const spyServiceSet = spyOn(service, 'set').and.callThrough();
|
||||
const spyServiceGet = spyOn(service, 'get').and.callThrough();
|
||||
const spyServiceClear = spyOn(service, 'clear').and.callThrough();
|
||||
|
||||
service.set(key, item);
|
||||
expect(spyServiceSet).toHaveBeenCalledWith(key, item);
|
||||
|
||||
let value = service.get(key);
|
||||
expect(spyServiceGet).toHaveBeenCalledWith(key);
|
||||
expect(value).toEqual(item);
|
||||
service.clear();
|
||||
expect(spyServiceClear).toHaveBeenCalled();
|
||||
value = service.get(key);
|
||||
expect(value).toEqual(null);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,44 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { LangOption } from '../../models/lang.model';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class TranslateServiceMock {
|
||||
// Simulación de las opciones de lenguaje
|
||||
private languageOptions: LangOption[] = [
|
||||
{ name: 'English', lang: 'en' },
|
||||
{ name: 'Español', lang: 'es' }
|
||||
];
|
||||
|
||||
// Comportamiento simulado del BehaviorSubject
|
||||
private _selectedLanguageSubject: BehaviorSubject<LangOption> = new BehaviorSubject<LangOption>(this.languageOptions[0]);
|
||||
selectedLanguageOption$: Observable<LangOption> = this._selectedLanguageSubject.asObservable();
|
||||
private activeTranslations: Record<string, any> = { hello: 'Hello', goodbye: 'Goodbye' }; // Simulación de traducciones
|
||||
|
||||
// Métodos simulados
|
||||
addTranslations(translations: Partial<Record<string, any>>): void {
|
||||
// Puedes agregar lógica para simular la adición de traducciones
|
||||
}
|
||||
|
||||
async setCurrentLanguage(lang: string): Promise<void> {
|
||||
const matchingOption = this.languageOptions.find(option => option.lang === lang);
|
||||
if (matchingOption) {
|
||||
this._selectedLanguageSubject.next(matchingOption);
|
||||
}
|
||||
}
|
||||
|
||||
getSelectedLanguage(): LangOption {
|
||||
return this._selectedLanguageSubject.getValue();
|
||||
}
|
||||
|
||||
getAvailableLanguages(): LangOption[] {
|
||||
return this.languageOptions;
|
||||
}
|
||||
|
||||
translate(key: string): string {
|
||||
// Retorna la traducción simulada
|
||||
return this.activeTranslations[key] || '';
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { TranslateService } from './translate.service';
|
||||
|
||||
describe('TranslateService', () => {
|
||||
let service: TranslateService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(TranslateService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -1,16 +0,0 @@
|
|||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { VirtualBackgroundService } from './virtual-background.service';
|
||||
|
||||
describe('VirtualBackgroundService', () => {
|
||||
let service: VirtualBackgroundService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(VirtualBackgroundService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -13,7 +13,7 @@
|
|||
"declarationMap": true,
|
||||
"inlineSources": true,
|
||||
"resolveJsonModule": true,
|
||||
"types": ["node"],
|
||||
"types": ["jasmine", "node"],
|
||||
"allowSyntheticDefaultImports": true
|
||||
},
|
||||
"exclude": ["node_modules", "src/test.ts", "**/*.spec.ts", "**/*.mock.ts"]
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
"node"
|
||||
],
|
||||
"moduleResolution": "node",
|
||||
"experimentalDecorators": true
|
||||
"experimentalDecorators": true,
|
||||
"resolveJsonModule": true
|
||||
},
|
||||
"files": [
|
||||
"src/test.ts"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"compilerOptions": {
|
||||
"outDir": "./out-tsc/spec",
|
||||
"types": [
|
||||
"jasmine"
|
||||
"jasmine", "node"
|
||||
]
|
||||
},
|
||||
"files": [
|
||||
|
|
Loading…
Reference in New Issue