{"_id":"@actionlogementservices/wdio-test-context","_rev":"8-5a90f3eace7a05206be6f877753276c2","name":"@actionlogementservices/wdio-test-context","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@actionlogementservices/wdio-test-context","version":"1.0.0","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.0.0","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"67f7e6e66dcec670b532f386e4326e001dd5be0e","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.0.0.tgz","fileCount":47,"integrity":"sha512-6dhoHGW2XHdA5fNZIlneExVyLx3/Dvi8xQLo7+gHJt4cpvi9hPBMKgKdDgH00uqDDqwkTPiG/gpQ+ErSKPZr5Q==","signatures":[{"sig":"MEUCIECAEb6o0gAGtOBc++ECS3QuwORMzpSJLcgDW1Q6TlxNAiEA+iyXVItBZTbYyYu5HDylZ2UvctPBRoBUZ/cuty0Hmho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107676},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"00f352b3bbd362adbde2c60f49ddf5fb4a20032c","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","chalk":"^5.4.1","jspdf":"^3.0.1","moment":"^2.30.1","nodemailer":"^6.10.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.0.0_1742775285550_0.5342642864205795","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@actionlogementservices/wdio-test-context","version":"1.0.1","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.0.1","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"8fd7d3321cd170b70ab7e86ab338ba5fe1d00b80","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.0.1.tgz","fileCount":47,"integrity":"sha512-ZfHFexfKVZiF5QGfsrG1bkqvuOZ4arBBNsEp8kPy/i6MQf30LxWV61bOrVfVEJhafFvEJye8irzLKi1m3cc+8w==","signatures":[{"sig":"MEUCICzWDydx7opVnkZErB7HELYePLHWfO8G6Zm1yaqbNvxrAiEAzotIm+bnEFqpb4Ujl9OHobRsmxN5N6ZMzQBgmH7pULU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108119},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"29389d9b839933798c7b2d22e75b74f449977311","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","chalk":"^5.4.1","jspdf":"^3.0.1","moment":"^2.30.1","nodemailer":"^6.10.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.0.1_1742820905966_0.8553942048541003","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@actionlogementservices/wdio-test-context","version":"1.1.0","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.1.0","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"716b32653ef157ee8d7d5435367143e36c97f9f5","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.1.0.tgz","fileCount":55,"integrity":"sha512-xDBrOPzKBqqEivQLsqbkS/d80OtCLs+o0HIb+D47FQd8jEOzSI9rsbnY80Y3uqokecO4n7UFrSFvHV9w4nAt8w==","signatures":[{"sig":"MEQCICKIqqPZT0DuqNT1TG5NZGLGg+3JWkSX0dUkh+XtkfeKAiAf9sCZ9b5gA70sfjC0JWWHEtEh55QwWBNy5NWaRVNSSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128497},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"9dc458c054ce891e0c60669e28cd6f761928b295","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","axios":"^1.8.4","chalk":"^5.4.1","jspdf":"^3.0.1","mssql":"^11.0.1","moment":"^2.30.1","amqplib":"^0.10.7","nodemailer":"^6.10.0","dotenv-flow":"^4.1.0","msnodesqlv8":"^4.5.0","syswide-cas":"^5.3.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.1.0_1744500237906_0.6304016829361434","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@actionlogementservices/wdio-test-context","version":"1.1.1","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.1.1","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"2008dadcdae71340415b4838a3c3a601e47a4274","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.1.1.tgz","fileCount":55,"integrity":"sha512-XkyB/8822RH+imt1aY9UOL4/AuNd8A0si7YzvoKHjN1FRPJxYsrPN323ldwWk1HQnn8NRsh/iyPEs2lWQ0a+iw==","signatures":[{"sig":"MEQCIAyP6buV5RcE3O+zkRf57JbzPkSzAFrP7gQ/tFWt47EsAiAQ9sqEbFiEiZhVmXcwj3iSoSNNWDqHUxJK/j67MZtGJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128693},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"bdf0b14233985ed500d0a09f3bf00f9c6c5bd2e9","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","axios":"^1.8.4","chalk":"^5.4.1","jspdf":"^3.0.1","mssql":"^11.0.1","moment":"^2.30.1","amqplib":"^0.10.7","nodemailer":"^6.10.0","dotenv-flow":"^4.1.0","msnodesqlv8":"^4.5.0","syswide-cas":"^5.3.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.1.1_1744715345950_0.6755321528243354","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@actionlogementservices/wdio-test-context","version":"1.1.2","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.1.2","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"865bd4a04ffec7df815e647b236bded9f9f4b2c8","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.1.2.tgz","fileCount":55,"integrity":"sha512-sQaCC8XkiO9Q/t4sQkHsvirc+tce5FvYi9oLa5L1Kwj4Qkt2adLcK8eteeuxiKalZiaxz5k1gNprmdqlU0ofPg==","signatures":[{"sig":"MEUCIQDGEhuAsfquY6Pk77TGRrOyxlPEI0mH1GLLehbqMRcnWQIga867MByVaaZyTYNrj5n3E+S/JFkT2WKFNTEC/TaDdZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128712},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"dcc1829f44e9da8f74734b778947d3bf9f4dc21b","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","axios":"^1.8.4","chalk":"^5.4.1","jspdf":"^3.0.1","mssql":"^11.0.1","moment":"^2.30.1","amqplib":"^0.10.7","nodemailer":"^6.10.0","dotenv-flow":"^4.1.0","msnodesqlv8":"^4.5.0","syswide-cas":"^5.3.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.1.2_1744718232892_0.39616898660419975","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@actionlogementservices/wdio-test-context","version":"1.1.3","keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","_id":"@actionlogementservices/wdio-test-context@1.1.3","maintainers":[{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"dist":{"shasum":"7e516b415ebdad3b905fef77185bad3937c12d29","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-1.1.3.tgz","fileCount":55,"integrity":"sha512-/7qC3VNR5N8bclx9B/B180GYXT0tSMJ8ztwrUjlhUiB3HhJDFMmakfQ3BvHIaS+SaCAhXGAzADaMmaTFSklMYw==","signatures":[{"sig":"MEYCIQCUnuAphtXuN1xWN9RI7/gDQUE4hKferimIE+meMakIKAIhAPMqCVG3b3zHCK3kQwCep6fNtpKDdvOP7HuFcLuMMMpA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128725},"main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"gitHead":"97a58b71896c574879d5d3b1a2a1cd10a1f2eaa0","scripts":{"doc":"jsdoc -c ./.jsdoc.json","eslint":"eslint \"./src/**/*.js\"","prettier":"prettier \"./src/**/*.js\" --write"},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"repository":{"url":"git+https://github.com/actionlogementservices/wdio-test-context.git","type":"git"},"_npmVersion":"10.9.2","description":"A framework to add test context to webdriverio end to end tests.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"glob":"^11.0.1","axios":"^1.8.4","chalk":"^5.4.1","jspdf":"^3.0.1","mssql":"^11.0.1","moment":"^2.30.1","amqplib":"^0.10.7","nodemailer":"^6.10.0","dotenv-flow":"^4.1.0","msnodesqlv8":"^4.5.0","syswide-cas":"^5.3.0","lodash.merge":"^4.6.2","@faker-js/faker":"^9.6.0","azure-devops-node-api":"^14.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^4.0.4","eslint":"^9.23.0","globals":"^16.0.0","prettier":"^3.5.3","@eslint/js":"^9.23.0","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.1","@wdio/spec-reporter":"^9.11.0","eslint-plugin-promise":"^7.2.1","eslint-plugin-unicorn":"^57.0.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","eslint-plugin-array-func":"^5.0.2"},"peerDependencies":{"@wdio/globals":"^9.12.1"},"_npmOperationalInternal":{"tmp":"tmp/wdio-test-context_1.1.3_1744731830650_0.8595626729904364","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@actionlogementservices/wdio-test-context","version":"2.0.0","description":"A framework to add test context to webdriverio end to end tests.","main":"src/index.js","type":"module","types":"src/types.d.ts","exports":{".":"./src/index.js","./types":"./src/types.d.ts"},"scripts":{"prettier":"prettier \"./src/**/*.js\" --write","eslint":"eslint \"./src/**/*.js\"","doc":"jsdoc -c ./.jsdoc.json"},"repository":{"type":"git","url":"git+https://github.com/actionlogementservices/wdio-test-context.git"},"keywords":["wdio"],"author":{"name":"Action Logement Services"},"license":"ISC","bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","devDependencies":{"@eslint/js":"^9.23.0","@wdio/spec-reporter":"^9.27.1","eslint":"^9.23.0","eslint-config-prettier":"^10.1.8","eslint-plugin-array-func":"^5.1.1","eslint-plugin-prettier":"^5.5.5","eslint-plugin-promise":"^7.3.0","eslint-plugin-unicorn":"^57.0.0","globals":"^17.6.0","jsdoc":"^4.0.5","jsdoc-escape-at":"^1.0.1","kis-jsdoc-plugin":"^2.2.3","prettier":"^3.8.3"},"dependencies":{"@faker-js/faker":"^10.4.0","amqplib":"^2.0.1","axios":"^1.16.1","azure-devops-node-api":"^15.1.2","chalk":"^5.6.2","dotenv-flow":"^4.1.0","glob":"^13.0.6","jspdf":"^4.2.1","lodash.merge":"^4.6.2","moment":"^2.30.1","msnodesqlv8":"^5.2.0","mssql":"^12.5.4","nodemailer":"^8.0.8","syswide-cas":"^5.3.0"},"peerDependencies":{"@wdio/globals":"^9.27.1"},"engines":{"node":">=22"},"_id":"@actionlogementservices/wdio-test-context@2.0.0","gitHead":"67dd854a6c0c16e449c745d82cdd4355baf2b8d8","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-/ciH+M1qN5NMQTVA0NTZLRpxRBnvz0trtW/kG0RuhdrHm5vsE+YbrdaXzUxddmLaqRG4tJC/xirHXCG4dxd+hA==","shasum":"e5b7204c833658565f6a175c7cb7a7c7b0edeb57","tarball":"https://registry.npmjs.org/@actionlogementservices/wdio-test-context/-/wdio-test-context-2.0.0.tgz","fileCount":55,"unpackedSize":128764,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDFAcX+8lKF4R5Jkl7EgN6wQTXVtHMfb6+ARPi9VpE9HAiBT0OGVXiHkrHIciu4uGefHMIPz/5XYZ3gHegD8BxWjgw=="}]},"_npmUser":{"name":"kisssdev","email":"vincent.caritey@outlook.fr"},"directories":{},"maintainers":[{"name":"als.oai","email":"othman.aissaoui@actionlogement.fr"},{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wdio-test-context_2.0.0_1779698066290_0.617953031280357"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-24T00:14:45.453Z","modified":"2026-05-25T08:34:26.562Z","1.0.0":"2025-03-24T00:14:45.782Z","1.0.1":"2025-03-24T12:55:06.147Z","1.1.0":"2025-04-12T23:23:58.110Z","1.1.1":"2025-04-15T11:09:06.150Z","1.1.2":"2025-04-15T11:57:13.071Z","1.1.3":"2025-04-15T15:43:50.836Z","2.0.0":"2026-05-25T08:34:26.436Z"},"bugs":{"url":"https://github.com/actionlogementservices/wdio-test-context/issues"},"author":{"name":"Action Logement Services"},"license":"ISC","homepage":"https://github.com/actionlogementservices/wdio-test-context#readme","keywords":["wdio"],"repository":{"type":"git","url":"git+https://github.com/actionlogementservices/wdio-test-context.git"},"description":"A framework to add test context to webdriverio end to end tests.","maintainers":[{"name":"als.oai","email":"othman.aissaoui@actionlogement.fr"},{"name":"kisssdev","email":"vincent.caritey@outlook.fr"}],"readme":"# wdio-test-context\n\nA framework to add test context to webdriverio end to end tests.\n\n- It uses JSON files (named dataset) and optional javascript function to add dynamic content to your dataset.\n- It consumes a disposable mail service (YOPmail, maildrop or Guerilla Mail) in order to check for new message.\n- It provides pdf generation to enable document uploads.\n- It provides an Azure DevOps webdriverio reporter.\n- It generates a screenshot when the test fails.\n\n## Installation\n\n- In your webdriverio test project:\n\n  ```sh\n  npm install @actionlogementservices/wdio-test-context\n  ```\n\n- Create a `data` folder\n\n- Create JSON files in the `data` folder: this will be your datasets.\n\n- Create a `data/test-context.d.ts`: this will add intellisense when you use your test context data within the spec files.\n\n- Create a `data/test-context.js` file with the following code:\n\n  ```js\n  // import your own function to generate dynamic data\n  import { generateRandomData } from './generate-random-data.js';\n  import { TestContext } from '@actionlogementservices/wdio-test-context';\n\n  // to enable intellisense with your own data\n  /** @typedef {import('./test-context.d.ts').TestContextModel} TestContextModel */\n\n  /** @type {TestContextModel & TestContext} */\n  export const testContext = /** @type {TestContextModel & TestContext} */ (\n    new TestContext()\n      .setDataGenerator(generateRandomData) // optional : add your own dynamic data\n      .setDefaultDataset('test') // default dataset name when DATASET env var is not specified\n      .setEnvironment('local', {\n        //define parameters for your environment\n        frontUrl: 'https://test.lvh.me',\n        backOfficeUrl: 'https://test-backoffice.lvh.me:4432',\n        sso: true\n      })\n      .setEnvironment('staging', {\n        frontUrl: 'https://staging.domain.com',\n        backOfficeUrl: 'https://staging-backoffice.domain.com'\n      })\n      .initialize()\n  );\n  ```\n\n- Create optionnally `data/generate-random-data.js` to add dynamic data, file with the following code:\n\n  ```js\n  import { faker } from '@faker-js/faker/locale/fr';\n  import moment from 'moment';\n\n  /** @typedef {import('@actionlogementservices/wdio-test-context/types').DataGenerator} DataGenerator */\n\n  /** @type {DataGenerator} */\n  function generateRandomData(_context) {\n    // dates random\n    const customDate = faker.date.between({ from: '1995-01-01', to: '2001-01-01' });\n    return {\n      customDate\n    };\n  }\n\n  export { generateRandomData };\n  ```\n\n- Configure optionnaly a **RabbitMQ client** if you plan to send some RabbitMQ message within your tests:\n\n  > **NOTE**\n  >\n  > - If you have secrets in your connection string, you need to\n  >\n  >   - create a `.env.{your_environment_name}.local` file (for instance `.env.staging.local`) with your secret configuration parameters.\n  >   - add the following entries to your `.gitignore`:\n  >\n  >     `.env.local`<br>`.env.*.local`\n\n  ```js\n  export const testContext = /** @type {TestContextModel & TestContext} */ (\n    new TestContext()\n      .setEnvironment(\n        'local',\n        {\n          frontUrl: 'https://test.lvh.me',\n        },\n        {\n          amqp: String.raw`amqps://${process.env.RMQ_USER}:${process.env.RMQ_PWD}@your-host:5671/your-vhost`,\n        }\n      )\n  ```\n\n- Configure webdriverio: in your wdio.conf.js:\n\n  ```js\n  import { AdoReporter, TestContextWorkerService } from '@actionlogementservices/wdio-test-context';\n  import { testContext } from './data/test-context.js';\n\n  export const config = {\n    ...\n    reporters: [[AdoReporter, {}]],\n    services: [[TestContextWorkerService, { testContext, logLevel: 'debug' }]],\n    ...\n  }\n  ```\n\n## Notes on secrets\n\nIf you have **secrets** in your parameter values, you need to\n\n- create a `.env.{your_environment_name}.local` file (for instance `.env.staging.local`) with your secret configuration parameters:\n\n  ```sh\n  DB_PWD=\"MySyperStrongPassword\"\n  CLIENT_SECRET=\"MySuperSafeSecret\"\n  ```\n\n- references the secret in the environment.js like this:\n\n  ```js\n  .setEnvironment('staging', {\n    sql: 'Server=YourServer;Password=${process.env.DB_PWD};...'\n  ```\n\n- to add the following entries to your `.gitignore` to prevent storing secret values in your repository:\n\n  ```sh\n  .env.local\n  .env.*.local\n  ```\n\n## Use the test context in the spec file\n\n### To access the mail service\n\n- Access the `mailService` property:\n\n  ```js\n  import { testContext } from '../../environments.js';\n\n  describe(`[Inbox] - ${testContext.user.email} - I`, () => {\n  let confirmationLink;\n    it('receive a mail with confirmation code within 10s', async () => {\n      await browser.open(testContext.getParameter('frontUrl')); // to retrieve parameters\n      const from = 'no-reply@domain.com';\n      const subject = `Confirmation code`;\n      // to wait for email and to access test context data\n      const content = await testContext.mailService.waitForMessage(testContext.user.email, from, subject);\n      confirmationCode = getConfirmationCode(content);\n      expect(confirmationCode).toContain('123456');\n    });\n  }\n  ```\n\n### To execute SQL queries\n\n- You need to define a **parameter** in `your environment.js` that contains the **sql connection string**. In the following exemple it is named `sqlBO`.\n\n  ```js\n  export const testContext = /** @type {TestContextModel & TestContext} */ (\n    new TestContext()\n      .setEnvironment(\n        'local',\n        {\n          frontUrl: 'https://test.lvh.me',\n          sqlBO: String.raw`Driver={ODBC Driver 17 for SQL Server};Server=(localdb)\\MSSQLLocalDB;Database=YourDatabase;Trusted_Connection=yes;`,\n        }\n      )\n  ```\n\n  > **NOTES on SQL connection string**\n  >\n  > - If you plan to use `(localdb)` or **Windows authentication** this requires an **ODBC driver** with a specific connection string syntax : `Driver={...}`. You also need to check which Microsoft SQL Server **ODBC driver** is installed on your system with the `ODBC Data Sources` control panel.\n  > - For Microsoft Sql Server instance without Windows Authentication, there is no need to use an ODBC driver. In such case remove the `Driver={...}` portion of the connection string.\n  > - You **can not** mix both syntax in the same environment.\n  > - In the previous example, `(localdb)` is used with the `ODBC Driver 17 for SQL Server` which is installed.\n\n- Somewhere in you spec files\n\n  ```js\n  import { testContext } from '../../environments.js';\n\n  describe(`Before starting the test, we`, () => {\n\n  it('check the sql version', async () => {\n    const result = await testContext.executeSql('sqlBO', (sql) => sql.query('SELECT @@Version'));\n    ...\n  });\n  ```\n\n### To publish AMQP message\n\n- You need to define a **parameter** in `your environment.js` that contains the **amqp connection string**. In the following exemple it is named `amqpBO`.\n\n  ```js\n  export const testContext = /** @type {TestContextModel & TestContext} */ (\n    new TestContext()\n      .setEnvironment(\n        'local',\n        {\n          frontUrl: 'https://test.lvh.me',\n          amqpBO: String.raw`Driver={ODBC Driver 17 for SQL Server};Server=(localdb)\\MSSQLLocalDB;Database=YourDatabase;Trusted_Connection=yes;`,\n        }\n      )\n  ```\n\n- Somewhere in you spec files\n\n  ```js\n  import { testContext } from '../../environments.js';\n\n  describe(`Before starting the test, we`, () => {\n\n  it('send an amqp message', async () => {\n    const result = await testContext.publishMessage('amqpBO',\n      'exchange',             // your exchange name\n      'routingKey',           // your routing key\n      'type',                 // your message type\n      { test: true },         // your message payload\n      testContext.user.email  // something to correlate/track you message\n    );\n    expect(result).toBe(true);\n  });\n  ```\n\n### To run a VTOM job\n\n- You need to define a **parameter** in `your environment.js` that contains the **VTOM configuration**. In the following exemple it is named `vtomBO`.\n\n  ```js\n  export const testContext = /** @type {TestContextModel & TestContext} */ (\n    new TestContext()\n      .setEnvironment(\n        'local',\n        {\n          frontUrl: 'https://test.lvh.me',\n          vtomBO: {\n            url: 'https://...',\n            apiKey: 'abcdef',\n            environement: 'DEV'\n          },\n        }\n      )\n  ```\n\n- Somewhere in you spec files\n\n  ```js\n  import { testContext } from '../../environments.js';\n\n  describe(`Before starting the test, we`, () => {\n\n  it('run a vtom job', async () => {\n    const result = await testContext.runVtomJob('vtomBO', 'app', 'job');\n    expect(result).toBe(true);\n  });\n  ```\n\n## Run your test\n\n- Specify the dataset with the `DATASET` env var and the environment with the `TARGET_ENV` env var\n\n  ```sh\n  TARGET_ENV=staging DATASET=full-scenario npx wdio\n  or\n  TARGET_ENV=staging DATASET=full-scenario npm test\n  ```\n\n## Code documentation\n\n- Code is [documented here](./doc/toc.md).\n","readmeFilename":"README.md"}