@unotest/web 0.25.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +330 -0
- package/README.md +70 -0
- package/dist/config/schema.d.ts +106 -1
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.d.ts +8 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/agent-integration.md +9 -0
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5cbe57=_0x4fa2;(function(_0x3ec493,_0x2b7191){const _0x2de4ca={_0x274528:0x122,_0x342b16:0x127,_0x1f71de:0x130,_0x54530b:0x123,_0xdeb49:0x135,_0x322cdb:0x11d,_0x553f5f:0x119},_0x3cd034=_0x4fa2,_0x47d1c4=_0x3ec493();while(!![]){try{const _0xd35a60=-parseInt(_0x3cd034(_0x2de4ca._0x274528))/0x1*(-parseInt(_0x3cd034(0x129))/0x2)+-parseInt(_0x3cd034(_0x2de4ca._0x342b16))/0x3+-parseInt(_0x3cd034(_0x2de4ca._0x1f71de))/0x4*(-parseInt(_0x3cd034(0x139))/0x5)+-parseInt(_0x3cd034(0x12d))/0x6*(-parseInt(_0x3cd034(_0x2de4ca._0x54530b))/0x7)+-parseInt(_0x3cd034(0x11e))/0x8*(parseInt(_0x3cd034(_0x2de4ca._0xdeb49))/0x9)+parseInt(_0x3cd034(_0x2de4ca._0x322cdb))/0xa+-parseInt(_0x3cd034(_0x2de4ca._0x553f5f))/0xb*(-parseInt(_0x3cd034(0x128))/0xc);if(_0xd35a60===_0x2b7191)break;else _0x47d1c4['push'](_0x47d1c4['shift']());}catch(_0x21234e){_0x47d1c4['push'](_0x47d1c4['shift']());}}}(_0x5270,0x1e884));function _0x5270(){const _0x517112=['C2nHzMzVBgrxB3jRC3bHy2u','mZC4nZGWDezRqwfN','mtuZnNzUueTZCa','ntqYnMfuuLDjtG','ztjL','icbJAgfUBMvSoIa','Dw5VDgvZDa','odm0nZyYvwXMzuDn','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','nJHyqvr0z20','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','C3rYAw5NAwz5','zgvMAw5LuhjVCgvYDhK','mtq0zKnOuvLo','zxHHBxbSzxm','mdeTC21VA2uUANm','ANnJB25MAwCUANnVBG','mtu4ndbyC21Qqu8','ANnJB25MAwDkC29U','ChvZAa','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4Ul25VzgvFBw9KDwXLCY9aDw5VDgvZDc93zwiVDhLWzxmVDw5VDgvZDc1KC2WUzc50CYikicbDcN0k','mtu4nJjpvfHmAe8','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','zw52rxHHBxbSzq','Dw5VDgvZDc5JB25MAwCUBwPZ','nJG5nJbMu3fQz0O','mtaWndGWqw5lyu1w','y2HHBM5LBa','x2HLBhbLCNm','BMfTzq','mJvxuxfZshm','n1PMqLDVEa','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG'];_0x5270=function(){return _0x517112;};return _0x5270();}var __defProp=Object[_0x5cbe57(0x134)],__name=(_0x4f7fec,_0x19fba2)=>__defProp(_0x4f7fec,_0x5cbe57(0x121),{'value':_0x19fba2,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x5cbe57(0x13c),'scenarioTemplate':'//\x20Move\x20+\x20rename\x20this\x20file\x20to\x20<feature>/<your_name>.js\x20(e.g.\x0a//\x20auth/login.js)\x20and\x20the\x20function\x20below\x20to\x20test_<your_name>().\x20Scenarios\x20live\x0a//\x20in\x20feature\x20subfolders,\x20NOT\x20the\x20e2e\x20root\x20—\x20the\x20linter\x20(lint:scenario-in-root)\x0a//\x20rejects\x20a\x20test\x20file\x20placed\x20directly\x20in\x20unotest/e2e/.\x20The\x20loader\x20derives\x20the\x0a//\x20entry\x20name\x20from\x20the\x20file\x20basename\x20—\x20kebab-case\x20dashes\x20become\x20underscores.\x0a\x0a//\x20Every\x20executable\x20step\x20must\x20sit\x20inside\x20a\x20step(\x22...\x22,\x20()\x20=>\x20{\x20…\x20})\x20block.\x20The\x0a//\x20title\x20is\x20a\x20plain-English\x20description\x20of\x20the\x20group;\x20the\x20steps\x20inside\x20are\x0a//\x20the\x20implementation.\x20Group\x20by\x20intent\x20(Setup\x20/\x20Enter\x20/\x20Act\x20/\x20Assert\x20or\x0a//\x20whatever\x20reads\x20well)\x20—\x20one\x20block\x20per\x20logical\x20chunk.\x0a\x0afunction\x20test_your_name_here()\x20{\x0a\x20\x20step(\x22Seed\x20a\x20known\x20user\x20via\x20DB\x20/\x20API\x20fixtures\x20from\x20_helpers/\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20wipe_e2e_users();\x0a\x20\x20\x20\x20//\x20\x20\x20\x20user_id\x20=\x20seed_user(\x27alice@example.com\x27,\x20\x27secret\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20seeded\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://your-app.test/login\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27alice@example.com\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20\x27secret\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Assert\x20the\x20dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertUrl(\x27/dashboard\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome,\x20Alice\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20count\x20=\x20dbQuery(\x27SELECT\x20count(*)\x20FROM\x20users\x20WHERE\x20active\x20=\x20true\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertTrue(count\x20>\x200,\x20\x27expected\x20at\x20least\x20one\x20active\x20user\x27);\x0a\x20\x20});\x0a}\x0a','agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x5cbe57(0x132),'examples':{'01-smoke.js':_0x5cbe57(0x124),'02-form-fill.js':_0x5cbe57(0x131)},'secretsExample':'#\x20unotest-web\x20—\x20secret\x20scenario\x20variables.\x20Created\x20by\x20`init`,\x20gitignored.\x0a#\x0a#\x20Same\x20KEY=VALUE\x20format\x20as\x20unotest/.env,\x20but\x20values\x20here\x20are\x20treated\x20as\x0a#\x20SECRET:\x20they\x20are\x20masked\x20(shown\x20as\x20`‹secret:KEY›`)\x20anywhere\x20the\x20runner\x20or\x0a#\x20MCP\x20debug\x20log\x20would\x20otherwise\x20write\x20them\x20—\x20fill()\x20values,\x20URLs,\x20evaluate\x0a#\x20strings.\x20Reference\x20them\x20in\x20a\x20scenario\x20by\x20their\x20bare\x20UPPER_SNAKE\x20name,\x20the\x0a#\x20same\x20way\x20as\x20.env\x20variables:\x0a#\x0a#\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20PASSWORD);\x0a#\x0a#\x20Secrets\x20are\x20NOT\x20exported\x20to\x20subprocesses\x20(shell())\x20—\x20they\x20stay\x20in\x20the\x0a#\x20variable\x20store.\x20A\x20subprocess\x20that\x20genuinely\x20needs\x20one\x20(a\x20listener\x20with\x20a\x0a#\x20token)\x20gets\x20it\x20via\x20the\x20explicit\x20allowlist\x20in\x20unotest.config.*:\x0a#\x20\x20\x20sandbox:\x20{\x20exportSecrets:\x20[\x27TOKEN\x27]\x20}\x0a#\x20Put\x20non-secret\x20values\x20(URLs,\x20emails,\x20ids)\x20in\x20unotest/.env.\x0a#\x0a#\x20FLEET_EXAMPLE\x0aLOGIN=\x0aPASSWORD=\x0aTOKEN=\x0a','envExample':_0x5cbe57(0x11a)};function unotestConfigMjs(_0x1d49b0){const _0x2eb216={_0x4fcaa3:0x12e,_0x58d3c0:0x125},_0x4c19dc=_0x5cbe57,_0x217135=_0x1d49b0===void 0x0?_0x4c19dc(_0x2eb216._0x4fcaa3):_0x4c19dc(0x12b)+JSON[_0x4c19dc(0x133)](_0x1d49b0)+',';return _0x4c19dc(0x12f)+_0x217135+_0x4c19dc(_0x2eb216._0x58d3c0);}__name(unotestConfigMjs,'unotestConfigMjs');async function scaffoldWorkspace(_0xf18ad3,_0x5d6fa1={}){const _0x2e609a={_0x433447:0x11f,_0x3420fa:0x11b,_0x44993c:0x136,_0x3d7431:0x137,_0x9332a0:0x136},_0x5b819c=_0x5cbe57,_0x525074=[],_0x5143eb=[];await mkdir(join(_0xf18ad3,'unotest',_0x5b819c(0x12a),'examples'),{'recursive':!![]}),await mkdir(join(_0xf18ad3,'unotest','e2e',_0x5b819c(0x120)),{'recursive':!![]});const _0x59cb75=[{'rel':_0x5b819c(0x11c),'content':unotestConfigMjs(_0x5d6fa1[_0x5b819c(_0x2e609a._0x433447)])},{'rel':join(_0x5b819c(0x12c),'.env'),'content':templates[_0x5b819c(_0x2e609a._0x3420fa)]},{'rel':join(_0x5b819c(0x12c),_0x5b819c(0x138)),'content':templates[_0x5b819c(0x13a)]},{'rel':join(_0x5b819c(0x12c),_0x5b819c(0x12a),_0x5b819c(_0x2e609a._0x44993c),_0x5b819c(_0x2e609a._0x3d7431)),'content':templates[_0x5b819c(_0x2e609a._0x9332a0)][_0x5b819c(0x137)]}];for(const {rel:_0x3573e7,content:_0x299418}of _0x59cb75){const _0x29cb42=join(_0xf18ad3,_0x3573e7);if(existsSync(_0x29cb42)){_0x5143eb[_0x5b819c(0x13b)](_0x3573e7);continue;}await writeFile(_0x29cb42,_0x299418),_0x525074[_0x5b819c(0x13b)](_0x3573e7);}return{'projectRoot':_0xf18ad3,'created':_0x525074,'skipped':_0x5143eb};}__name(scaffoldWorkspace,_0x5cbe57(0x126));function _0x4fa2(_0x1479c7,_0xa051f5){_0x1479c7=_0x1479c7-0x119;const _0x527087=_0x5270();let _0x4fa2d9=_0x527087[_0x1479c7];if(_0x4fa2['ckMjbQ']===undefined){var _0x145b35=function(_0x140714){const _0x3c4e75='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4f7fec='',_0x19fba2='';for(let _0x1d49b0=0x0,_0x217135,_0xf18ad3,_0x5d6fa1=0x0;_0xf18ad3=_0x140714['charAt'](_0x5d6fa1++);~_0xf18ad3&&(_0x217135=_0x1d49b0%0x4?_0x217135*0x40+_0xf18ad3:_0xf18ad3,_0x1d49b0++%0x4)?_0x4f7fec+=String['fromCharCode'](0xff&_0x217135>>(-0x2*_0x1d49b0&0x6)):0x0){_0xf18ad3=_0x3c4e75['indexOf'](_0xf18ad3);}for(let _0x525074=0x0,_0x5143eb=_0x4f7fec['length'];_0x525074<_0x5143eb;_0x525074++){_0x19fba2+='%'+('00'+_0x4f7fec['charCodeAt'](_0x525074)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19fba2);};_0x4fa2['pTGIld']=_0x145b35,_0x4fa2['SOWeDe']={},_0x4fa2['ckMjbQ']=!![];}const _0x54e0fc=_0x527087[0x0],_0x162e8f=_0x1479c7+_0x54e0fc,_0x1f2e1b=_0x4fa2['SOWeDe'][_0x162e8f];return!_0x1f2e1b?(_0x4fa2d9=_0x4fa2['pTGIld'](_0x4fa2d9),_0x4fa2['SOWeDe'][_0x162e8f]=_0x4fa2d9):_0x4fa2d9=_0x1f2e1b,_0x4fa2d9;}export{scaffoldWorkspace};
|
|
1
|
+
const _0x180be8=_0x2e5e;(function(_0x14add4,_0x3088db){const _0x5dc0eb={_0x221907:0x143,_0x90cd66:0x147,_0x56e81d:0x14b,_0x342201:0x13e,_0x82ed42:0x13f,_0x28b88e:0x140},_0x38990d=_0x2e5e,_0x2a8480=_0x14add4();while(!![]){try{const _0x336dcd=parseInt(_0x38990d(0x141))/0x1+parseInt(_0x38990d(_0x5dc0eb._0x221907))/0x2*(parseInt(_0x38990d(0x146))/0x3)+parseInt(_0x38990d(_0x5dc0eb._0x90cd66))/0x4*(-parseInt(_0x38990d(_0x5dc0eb._0x56e81d))/0x5)+parseInt(_0x38990d(_0x5dc0eb._0x342201))/0x6+parseInt(_0x38990d(_0x5dc0eb._0x82ed42))/0x7*(parseInt(_0x38990d(_0x5dc0eb._0x28b88e))/0x8)+-parseInt(_0x38990d(0x142))/0x9+-parseInt(_0x38990d(0x13a))/0xa;if(_0x336dcd===_0x3088db)break;else _0x2a8480['push'](_0x2a8480['shift']());}catch(_0x57cea6){_0x2a8480['push'](_0x2a8480['shift']());}}}(_0x1d57,0x5764a));function _0x1d57(){const _0x5088ae=['ndG0nJqWywL3vw1o','nJi0otu1AK5ArKLo','mZG4nZu1zeTor09P','otC0ntb0r0flt3u','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','x2HLBhbLCNm','mZnuDfzAsgG','otm0mZuYtvfjAeje','zw52rxHHBxbSzq','ztjL','mdeTC21VA2uUANm','mtbAqNv5rei','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','ANnJB25MAwCUANnVBG','ANnJB25MAwDkC29U','icbJAgfUBMvSoIa','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','Dw5VDgvZDa','C2nHzMzVBgrxB3jRC3bHy2u','C3rYAw5NAwz5','Dw5VDgvZDc5JB25MAwCUBwPZ','zgvMAw5LuhjVCgvYDhK','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','zxHHBxbSzxm','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','mtaYmZu4ndbNALDHC04','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','ChvZAa','mZG3nJqYExP0z1fu','nZDXzevdBfa'];_0x1d57=function(){return _0x5088ae;};return _0x1d57();}var __defProp=Object[_0x180be8(0x156)],__name=(_0x43bfd8,_0x3c3615)=>__defProp(_0x43bfd8,'name',{'value':_0x3c3615,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x180be8(0x13c),'scenarioTemplate':_0x180be8(0x144),'agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x180be8(0x151),'examples':{'01-smoke.js':_0x180be8(0x14c),'02-form-fill.js':_0x180be8(0x157)},'secretsExample':_0x180be8(0x139),'envExample':_0x180be8(0x13b)};function unotestConfigMjs(_0x41ec85){const _0x5479c3={_0xfe324a:0x150,_0x1c832c:0x154},_0x1545c2=_0x180be8,_0xe0b933=_0x41ec85===void 0x0?'\x20\x20//\x20channel:\x20\x27chrome\x27,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20\x27chrome\x27\x20/\x20\x27msedge\x27\x20/\x20null\x20(bundled)':_0x1545c2(_0x5479c3._0xfe324a)+JSON[_0x1545c2(_0x5479c3._0x1c832c)](_0x41ec85)+',';return'//\x20@unotest/web\x20project\x20config.\x20All\x20fields\x20are\x20optional\x20—\x20defaults\x20apply\x0a//\x20when\x20omitted.\x0a//\x0a//\x20Saved\x20as\x20.mjs\x20so\x20the\x20runtime\x20loads\x20it\x20as\x20ESM\x20regardless\x20of\x20the\x20project\x27s\x0a//\x20package.json\x20\x22type\x22\x20field.\x20For\x20IDE\x20autocomplete,\x20type-import\x20the\x20schema:\x0a//\x0a//\x20\x20\x20/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0a//\x20\x20\x20export\x20default\x20{\x20baseUrl:\x20\x27https://your-app.test\x27\x20};\x0a\x0a/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0aexport\x20default\x20{\x0a\x20\x20//\x20baseUrl:\x20\x27https://your-app.test\x27,\x0a\x20\x20//\x20browsers:\x20[\x27chromium\x27,\x20\x27firefox\x27,\x20\x27webkit\x27],\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20viewport:\x20{\x20width:\x201280,\x20height:\x20720\x20},\x0a\x20\x20//\x20retry:\x20{\x20count:\x201,\x20on:\x20[\x27transient\x27]\x20},\x20\x20\x20\x20\x20\x20\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20storageState:\x20\x27.unotest/cache/auth.json\x27,\x20\x20\x20\x20\x20\x20//\x20see\x20helpers\x0a\x20\x20//\x20sandbox:\x20{\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20apiCall\x20/\x20upload\x20/\x20dbQuery\x20/\x20shell\x0a\x20\x20//\x20\x20\x20apiBaseUrl:\x20\x27https://api.your-app.test\x27,\x20\x20\x20\x20\x20//\x20base\x20for\x20apiCall(\x27POST\x27,\x20\x27/path\x27,\x20…)\x0a\x20\x20//\x20\x20\x20uploadDir:\x20\x27unotest/fixtures\x27,\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20root\x20for\x20upload(\x27doc.pdf\x27)\x20paths;\x0a\x20\x20//\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20project\x20root.\x20Uploads\x20may\x0a\x20\x20//\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20not\x20escape\x20it\x20(relative\x20paths\x20only).\x0a\x20\x20//\x20\x20\x20database:\x20\x27postgresql://localhost:5432/app_test\x27,\x20\x20//\x20dbQuery\x20/\x20dbExec\x0a\x20\x20//\x20},\x0a'+_0xe0b933+_0x1545c2(0x14d);}__name(unotestConfigMjs,'unotestConfigMjs');async function scaffoldWorkspace(_0x4dc8d5,_0x3dc0d7={}){const _0x4ff373={_0x5df674:0x149,_0x137c0f:0x152,_0x24be45:0x14f,_0x17493d:0x158},_0x39d7de=_0x180be8,_0x17090d=[],_0x16c471=[];await mkdir(join(_0x4dc8d5,_0x39d7de(0x152),_0x39d7de(_0x4ff373._0x5df674),'examples'),{'recursive':!![]}),await mkdir(join(_0x4dc8d5,'unotest',_0x39d7de(_0x4ff373._0x5df674),_0x39d7de(0x145)),{'recursive':!![]});const _0x27197b=[{'rel':_0x39d7de(0x155),'content':unotestConfigMjs(_0x3dc0d7['channel'])},{'rel':join(_0x39d7de(_0x4ff373._0x137c0f),'.env'),'content':templates[_0x39d7de(0x148)]},{'rel':join('unotest',_0x39d7de(0x14e)),'content':templates[_0x39d7de(_0x4ff373._0x24be45)]},{'rel':join(_0x39d7de(0x152),_0x39d7de(0x149),'examples',_0x39d7de(0x14a)),'content':templates[_0x39d7de(_0x4ff373._0x17493d)]['01-smoke.js']}];for(const {rel:_0x130425,content:_0x4506bf}of _0x27197b){const _0x4f28f5=join(_0x4dc8d5,_0x130425);if(existsSync(_0x4f28f5)){_0x16c471[_0x39d7de(0x13d)](_0x130425);continue;}await writeFile(_0x4f28f5,_0x4506bf),_0x17090d[_0x39d7de(0x13d)](_0x130425);}return{'projectRoot':_0x4dc8d5,'created':_0x17090d,'skipped':_0x16c471};}__name(scaffoldWorkspace,_0x180be8(0x153));function _0x2e5e(_0x4de151,_0x5ad658){_0x4de151=_0x4de151-0x139;const _0x1d57f7=_0x1d57();let _0x2e5ea2=_0x1d57f7[_0x4de151];if(_0x2e5e['VohPLJ']===undefined){var _0x4a7e05=function(_0x254d6e){const _0x5a7c0d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x43bfd8='',_0x3c3615='';for(let _0x41ec85=0x0,_0xe0b933,_0x4dc8d5,_0x3dc0d7=0x0;_0x4dc8d5=_0x254d6e['charAt'](_0x3dc0d7++);~_0x4dc8d5&&(_0xe0b933=_0x41ec85%0x4?_0xe0b933*0x40+_0x4dc8d5:_0x4dc8d5,_0x41ec85++%0x4)?_0x43bfd8+=String['fromCharCode'](0xff&_0xe0b933>>(-0x2*_0x41ec85&0x6)):0x0){_0x4dc8d5=_0x5a7c0d['indexOf'](_0x4dc8d5);}for(let _0x17090d=0x0,_0x16c471=_0x43bfd8['length'];_0x17090d<_0x16c471;_0x17090d++){_0x3c3615+='%'+('00'+_0x43bfd8['charCodeAt'](_0x17090d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c3615);};_0x2e5e['FNqFYv']=_0x4a7e05,_0x2e5e['pikmQO']={},_0x2e5e['VohPLJ']=!![];}const _0x2c8c0b=_0x1d57f7[0x0],_0x36d366=_0x4de151+_0x2c8c0b,_0x2d8024=_0x2e5e['pikmQO'][_0x36d366];return!_0x2d8024?(_0x2e5ea2=_0x2e5e['FNqFYv'](_0x2e5ea2),_0x2e5e['pikmQO'][_0x36d366]=_0x2e5ea2):_0x2e5ea2=_0x2d8024,_0x2e5ea2;}export{scaffoldWorkspace};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x4158bb=_0x102d;(function(_0x3a5c79,_0xd16b56){var _0x3dd976={_0x3d0721:0xd1,_0x500326:0xd6,_0x193852:0xdc,_0x5de9cc:0xda,_0x3b8822:0xe3,_0x30cba8:0xe1,_0x1b9877:0xd7,_0x396563:0xd2,_0x5b5e65:0xde},_0x38b9f6=_0x102d,_0x171f83=_0x3a5c79();while(!![]){try{var _0x1b9f98=parseInt(_0x38b9f6(_0x3dd976._0x3d0721))/0x1+-parseInt(_0x38b9f6(_0x3dd976._0x500326))/0x2+-parseInt(_0x38b9f6(_0x3dd976._0x193852))/0x3+-parseInt(_0x38b9f6(_0x3dd976._0x5de9cc))/0x4*(-parseInt(_0x38b9f6(_0x3dd976._0x3b8822))/0x5)+parseInt(_0x38b9f6(_0x3dd976._0x30cba8))/0x6+parseInt(_0x38b9f6(0xd8))/0x7*(parseInt(_0x38b9f6(_0x3dd976._0x1b9877))/0x8)+-parseInt(_0x38b9f6(_0x3dd976._0x396563))/0x9*(parseInt(_0x38b9f6(_0x3dd976._0x5b5e65))/0xa);if(_0x1b9f98===_0xd16b56)break;else _0x171f83['push'](_0x171f83['shift']());}catch(_0x4b9673){_0x171f83['push'](_0x171f83['shift']());}}}(_0x4706,0x30300));import{fileURLToPath}from'url';import{dirname,resolve}from'path';function _0x4706(){var _0x26f4f4=['otK0mhblr3LfEq','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','D3jPDgu','mZuZntGWDNjXtMTO','C3rKzxjY','mtq1mZGWEffOwKfs','mZa3mtGWANHnCe9X','mtaXn2LWzvLTrq','zxHPDa','zMLUza','Aw5OzxjPDa','nJq0mduWsNfRy0f4','mtKZmdy0C2TVquD5','otfMDuHbBgq','BwfW','mtj2DNDKChK','zxHLy1bHDgG','nda2mdmYvg9ryuvW','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm'];_0x4706=function(){return _0x26f4f4;};return _0x4706();}import{spawn}from'child_process';function _0x102d(_0x1157ab,_0x480b74){_0x1157ab=_0x1157ab-0xd1;var _0x470642=_0x4706();var _0x102d46=_0x470642[_0x1157ab];if(_0x102d['DlmOun']===undefined){var _0x1b6d93=function(_0x5e0470){var _0x12e9b9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4915eb='',_0x1a5ad7='';for(var _0x392a04=0x0,_0xa53ac8,_0x54ca4d,_0x8cb31f=0x0;_0x54ca4d=_0x5e0470['charAt'](_0x8cb31f++);~_0x54ca4d&&(_0xa53ac8=_0x392a04%0x4?_0xa53ac8*0x40+_0x54ca4d:_0x54ca4d,_0x392a04++%0x4)?_0x4915eb+=String['fromCharCode'](0xff&_0xa53ac8>>(-0x2*_0x392a04&0x6)):0x0){_0x54ca4d=_0x12e9b9['indexOf'](_0x54ca4d);}for(var _0x1f5765=0x0,_0x3a3958=_0x4915eb['length'];_0x1f5765<_0x3a3958;_0x1f5765++){_0x1a5ad7+='%'+('00'+_0x4915eb['charCodeAt'](_0x1f5765)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a5ad7);};_0x102d['WgmrjC']=_0x1b6d93,_0x102d['HUplsC']={},_0x102d['DlmOun']=!![];}var _0x235497=_0x470642[0x0],_0x52a9fd=_0x1157ab+_0x235497,_0x8d8acd=_0x102d['HUplsC'][_0x52a9fd];return!_0x8d8acd?(_0x102d46=_0x102d['WgmrjC'](_0x102d46),_0x102d['HUplsC'][_0x52a9fd]=_0x102d46):_0x102d46=_0x8d8acd,_0x102d46;}import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,'../../examples/fixtures/break-fix-app/serve.mjs'),resolve(here,_0x4158bb(0xdd))],serverEntry=candidates[_0x4158bb(0xd4)](_0x4915eb=>existsSync(_0x4915eb));!serverEntry&&(process[_0x4158bb(0xe2)][_0x4158bb(0xe0)](_0x4158bb(0xdf)+candidates[_0x4158bb(0xd9)](_0x1a5ad7=>'\x20\x20'+_0x1a5ad7+'\x0a')['join']('')+'Did\x20you\x20publish\x20without\x20examples/fixtures/?\x0a'),process[_0x4158bb(0xd3)](0x1));var child=spawn(process[_0x4158bb(0xdb)],[serverEntry,...process['argv']['slice'](0x2)],{'stdio':_0x4158bb(0xd5)});child['on'](_0x4158bb(0xd3),_0x392a04=>process['exit'](_0x392a04??0x1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3422d9=_0x3a72;(function(_0x2337c3,_0x2869e8){const _0x31ab6c={_0x467e81:0x18e,_0x2dac89:0x185,_0x18ce8e:0x16b,_0x3c59be:0x15d,_0x1da3ec:0x140},_0x4c50e0=_0x3a72,_0x2ecb20=_0x2337c3();while(!![]){try{const _0x33e4fc=-parseInt(_0x4c50e0(_0x31ab6c._0x467e81))/0x1+-parseInt(_0x4c50e0(_0x31ab6c._0x2dac89))/0x2*(parseInt(_0x4c50e0(0x14b))/0x3)+-parseInt(_0x4c50e0(0x167))/0x4+parseInt(_0x4c50e0(_0x31ab6c._0x18ce8e))/0x5+parseInt(_0x4c50e0(0x14f))/0x6*(parseInt(_0x4c50e0(0x132))/0x7)+-parseInt(_0x4c50e0(_0x31ab6c._0x3c59be))/0x8*(parseInt(_0x4c50e0(_0x31ab6c._0x1da3ec))/0x9)+-parseInt(_0x4c50e0(0x193))/0xa*(-parseInt(_0x4c50e0(0x13e))/0xb);if(_0x33e4fc===_0x2869e8)break;else _0x2ecb20['push'](_0x2ecb20['shift']());}catch(_0x4a53b3){_0x2ecb20['push'](_0x2ecb20['shift']());}}}(_0x126a,0x6d413));var __defProp=Object[_0x3422d9(0x15b)],__name=(_0x194f2c,_0x30044d)=>__defProp(_0x194f2c,_0x3422d9(0x162),{'value':_0x30044d,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x1fd42b}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x349edc={_0x539b1f:0x143},_0x3717e0=_0x3422d9;for(const _0x54e279 of[probeChrome,probeEdge,probeChromeBeta]){const _0x1c6c03=_0x54e279();if(_0x1c6c03[_0x3717e0(_0x349edc._0x539b1f)]!==null)return _0x1c6c03;}return{'channel':null};}__name(probeSystemBrowser,_0x3422d9(0x173));function probeChrome(){const _0x8e6b91=_0x3422d9,_0x5ed378=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x5ed378)return{'channel':'chrome','path':_0x5ed378,'label':_0x8e6b91(0x14c)};return{'channel':null};}__name(probeChrome,'probeChrome');function probeEdge(){const _0x333895={_0x17192f:0x180,_0x335f51:0x177},_0x120f9f=_0x3422d9,_0x4d5ba9=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x4d5ba9)return{'channel':_0x120f9f(_0x333895._0x17192f),'path':_0x4d5ba9,'label':_0x120f9f(_0x333895._0x335f51)};return{'channel':null};}__name(probeEdge,_0x3422d9(0x14e));function probeChromeBeta(){const _0x8b5317={_0x166524:0x18a},_0x1cfe92=_0x3422d9,_0x389314=firstExistingPath(CHROME_BETA_PATHS);if(_0x389314)return{'channel':_0x1cfe92(_0x8b5317._0x166524),'path':_0x389314,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,_0x3422d9(0x12e));var CHROME_PATHS=((()=>{const _0x5e1394={_0x547748:0x13f,_0xdb679c:0x13c,_0x46ef18:0x15a,_0x5b1c4d:0x13b,_0x101e00:0x174,_0x26cd7c:0x171,_0x4c030a:0x191},_0x407a69=_0x3422d9;switch(process['platform']){case _0x407a69(0x184):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x407a69(_0x5e1394._0x547748):return[process[_0x407a69(0x13b)][_0x407a69(_0x5e1394._0xdb679c)]+_0x407a69(_0x5e1394._0x46ef18),process[_0x407a69(_0x5e1394._0x5b1c4d)][_0x407a69(0x17a)]+_0x407a69(0x15a),process[_0x407a69(_0x5e1394._0x5b1c4d)][_0x407a69(_0x5e1394._0x101e00)]+_0x407a69(0x15a)];default:return['/usr/bin/google-chrome',_0x407a69(0x12d),_0x407a69(_0x5e1394._0x26cd7c),_0x407a69(0x192),_0x407a69(_0x5e1394._0x4c030a)];}})()),CHROME_BIN_NAMES=[_0x3422d9(0x141),_0x3422d9(0x16f),_0x3422d9(0x194),_0x3422d9(0x153)],EDGE_PATHS=((()=>{const _0x41f787={_0x5e10c6:0x186,_0x41cb91:0x166},_0x3c1562=_0x3422d9;switch(process[_0x3c1562(0x147)]){case _0x3c1562(0x184):return[_0x3c1562(_0x41f787._0x5e10c6)];case _0x3c1562(0x13f):return[process['env'][_0x3c1562(0x13c)]+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe',process[_0x3c1562(0x13b)]['ProgramFiles(x86)']+_0x3c1562(0x17e)];default:return[_0x3c1562(0x159),_0x3c1562(_0x41f787._0x41cb91)];}})()),EDGE_BIN_NAMES=[_0x3422d9(0x16c),_0x3422d9(0x188)],CHROME_BETA_PATHS=((()=>{const _0x1923f6={_0x450ae2:0x147,_0x2aec15:0x184,_0x20b635:0x13c,_0x3d312d:0x151,_0x540be3:0x136},_0x676f70=_0x3422d9;switch(process[_0x676f70(_0x1923f6._0x450ae2)]){case _0x676f70(_0x1923f6._0x2aec15):return[_0x676f70(0x148)];case'win32':return[process['env'][_0x676f70(_0x1923f6._0x20b635)]+_0x676f70(_0x1923f6._0x3d312d)];default:return[_0x676f70(_0x1923f6._0x540be3)];}})());function firstExistingPath(_0x31c5af){const _0x1405ae={_0x500787:0x139,_0x25dc14:0x165},_0x35bd6a=_0x3422d9;for(const _0x149b76 of _0x31c5af){if(!_0x149b76||_0x149b76[_0x35bd6a(_0x1405ae._0x500787)](_0x35bd6a(_0x1405ae._0x25dc14)))continue;if(existsSync(_0x149b76))return _0x149b76;}return null;}__name(firstExistingPath,_0x3422d9(0x155));function whichOf(_0x11b05c){const _0x524363={_0x5c438f:0x13f,_0x265504:0x158,_0xa16770:0x170,_0x1f041a:0x17b},_0x279f7a=_0x3422d9;if(process['platform']===_0x279f7a(_0x524363._0x5c438f))return void 0x0;for(const _0x576108 of _0x11b05c){try{const _0x4f0bf2=execFileSync(_0x279f7a(_0x524363._0x265504),[_0x576108],{'encoding':_0x279f7a(_0x524363._0xa16770)})[_0x279f7a(_0x524363._0x1f041a)]();if(_0x4f0bf2[_0x279f7a(0x178)]>0x0&&existsSync(_0x4f0bf2))return _0x4f0bf2;}catch{}}return void 0x0;}__name(whichOf,'whichOf');function _0x3a72(_0x3a6f4c,_0x281e31){_0x3a6f4c=_0x3a6f4c-0x12c;const _0x126a53=_0x126a();let _0x3a722d=_0x126a53[_0x3a6f4c];if(_0x3a72['USRQEn']===undefined){var _0x49ee41=function(_0x56e7ae){const _0x55372f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1fd42b='',_0x194f2c='';for(let _0x30044d=0x0,_0x54e279,_0x1c6c03,_0x5ed378=0x0;_0x1c6c03=_0x56e7ae['charAt'](_0x5ed378++);~_0x1c6c03&&(_0x54e279=_0x30044d%0x4?_0x54e279*0x40+_0x1c6c03:_0x1c6c03,_0x30044d++%0x4)?_0x1fd42b+=String['fromCharCode'](0xff&_0x54e279>>(-0x2*_0x30044d&0x6)):0x0){_0x1c6c03=_0x55372f['indexOf'](_0x1c6c03);}for(let _0x4d5ba9=0x0,_0x389314=_0x1fd42b['length'];_0x4d5ba9<_0x389314;_0x4d5ba9++){_0x194f2c+='%'+('00'+_0x1fd42b['charCodeAt'](_0x4d5ba9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x194f2c);};_0x3a72['OPDAuU']=_0x49ee41,_0x3a72['urHpjo']={},_0x3a72['USRQEn']=!![];}const _0x532849=_0x126a53[0x0],_0x1ad1e9=_0x3a6f4c+_0x532849,_0x5b414c=_0x3a72['urHpjo'][_0x1ad1e9];return!_0x5b414c?(_0x3a722d=_0x3a72['OPDAuU'](_0x3a722d),_0x3a72['urHpjo'][_0x1ad1e9]=_0x3a722d):_0x3a722d=_0x5b414c,_0x3a722d;}function runEnvironmentChecks(_0x4e793a={}){const _0x9c5f14={_0x5737a0:0x13a},_0x45e019=_0x3422d9,_0x27089f=_0x4e793a[_0x45e019(_0x9c5f14._0x5737a0)]??process[_0x45e019(0x13a)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x27089f)];}__name(runEnvironmentChecks,_0x3422d9(0x181));function _0x126a(){const _0x2166b6=['xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','y2HLy2TxCML0ywjSzun3za','y2HYB21PDw0TyNjVD3nLCG','y2HLy2ToB2rLvMvYC2LVBG','zMLYC3rfEgLZDgLUz1bHDgG','yxv0Ag9Y','yMLU','D2HPy2G','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','zgvMAw5LuhjVCgvYDhK','ztjL','ofvTAhLrqq','AgvHzgvK','ls1ICMvHAW','BM9Kzq','vgfYz2v0igrPCMvJDg9YEq','BMfTzq','ls1Kzwj1zW','l3bHy2THz2uUANnVBG','Dw5KzwzPBMvK','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mZm3nZaWC3HeB1rn','DgfYz2v0ia','Cgf0Aa','tM9Kzs5QCYb2zxjZAw9U','ndqZmtq2nuv6C1DYva','BwLJCM9ZB2z0lwvKz2u','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','v2vIuNvUBMvYqwrHChrLCG','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','DxrMoa','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','zgvIDwC','ChjVyMvtExn0zw1cCM93C2vY','te9dquXbufbeqvrb','C3vMzML4','D29YA2vYCW','twLJCM9ZB2z0ievKz2u','BgvUz3rO','C3vWCg9YDgvKs2LUzhm','uhjVz3jHBuzPBgvZkhG4nIK','DhjPBq','ChvZAa','Dw5VDgvZDc13zwi','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','AM9PBG','BxnLzgDL','CNvUrw52AxjVBM1LBNrdAgvJA3m','C3rYAw5N','yxv0Ag9YAw5N','zgfYD2LU','mtaWmZm5ngPuAuLsCq','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','igrVzxmGBM90igv4Axn0','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','A2LUza','y2HYB21LlwjLDge','igzVDw5K','yMfPBa','zg9JDg9Y','odi4ntC3zhbPqMzj','yxbWlxnLCNzLCG','ls1IywLS','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','l3vZCI9IAw4Vy2HYB21PDw0','odmYmevoshviuG','y2HYB21PDw0','y29SBgvJDgLVBG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','ChjVyMvdAhjVBwvczxrH','CMvZB2X2zq','CMvZB2X2zujPBG','C2nLBMfYAw8','odGYwMrKr1jJ','D2fYBMLUzW','yNvPBgrbCMDZ','yNjLywTWB2LUDhm','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','DMvYC2LVBNm','C3rHCNrZv2L0Aa','y3DK','zw52','uhjVz3jHBuzPBgvZ','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','otmWnKzLsNPRzG','D2LUmZi','mZeYody0m1v2EwHqsG','z29Vz2XLlwnOCM9Tzq','B2jQzwn0','y2HHBM5LBa','y2HLy2TtExn0zw1cCM93C2vY','AxngAw5PDgu','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','CgXHDgzVCM0','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','m2LlC0LABa','r29Vz2XLienOCM9Tzq','u3LZDgvTigjYB3DZzxi','ChjVyMvfzgDL','mJK1mdH4r0j6t0O','CgLJA0jPBG'];_0x126a=function(){return _0x2166b6;};return _0x126a();}function checkNodeVersion(){const _0xc6bebe={_0x412a2f:0x160,_0x1a5609:0x145,_0x43193a:0x16d,_0x420cb0:0x13d},_0xdc4869=_0x3422d9,_0x289a00=process[_0xdc4869(0x138)][_0xdc4869(_0xc6bebe._0x412a2f)],_0x17d4de=Number(_0x289a00['split']('.')[0x0]);if(!Number[_0xdc4869(_0xc6bebe._0x1a5609)](_0x17d4de)||_0x17d4de<0x14)return{'name':_0xdc4869(0x16a),'severity':'error','message':_0xdc4869(_0xc6bebe._0x43193a)+_0x289a00+')','detail':_0xdc4869(_0xc6bebe._0x420cb0)};return{'name':_0xdc4869(0x16a),'severity':'ok','message':_0x289a00};}__name(checkNodeVersion,_0x3422d9(0x154));function checkSystemBrowser(){const _0x2fbbff={_0x53fe52:0x143,_0x381548:0x18b,_0x58b050:0x14d,_0x11f8ca:0x133,_0x5dfffd:0x137,_0x5d7ab2:0x149},_0x364741=_0x3422d9,_0x1f93b2=probeSystemBrowser();if(_0x1f93b2[_0x364741(_0x2fbbff._0x53fe52)]!==null)return{'name':_0x364741(0x14d),'severity':'ok','message':_0x1f93b2['label']+_0x364741(_0x2fbbff._0x381548),'detail':_0x1f93b2[_0x364741(0x169)]};return{'name':_0x364741(_0x2fbbff._0x58b050),'severity':_0x364741(_0x2fbbff._0x11f8ca),'message':_0x364741(_0x2fbbff._0x5dfffd),'detail':_0x364741(_0x2fbbff._0x5d7ab2)};}__name(checkSystemBrowser,_0x3422d9(0x144));function checkWritableCwd(_0x210baa){const _0x6abaa8={_0x14fd16:0x161,_0x2c8d9f:0x187,_0x2057dd:0x14a},_0x275b4c=_0x3422d9;if(!_0x1fd42b(_0x210baa))return{'name':_0x275b4c(_0x6abaa8._0x14fd16),'severity':'error','message':_0x275b4c(0x168)+_0x210baa+_0x275b4c(_0x6abaa8._0x2c8d9f),'detail':_0x275b4c(_0x6abaa8._0x2057dd)};return{'name':'Target\x20directory','severity':'ok','message':_0x210baa};}__name(checkWritableCwd,_0x3422d9(0x152));var PACKAGE_NAME='@unotest/web',WebRunnerAdapter=class{static{__name(this,_0x3422d9(0x16e));}[_0x3422d9(0x162)]=PACKAGE_NAME;[_0x3422d9(0x175)]='';[_0x3422d9(0x172)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x3422d9(0x179)]=[_0x3422d9(0x131),_0x3422d9(0x12c),_0x3422d9(0x183)];[_0x3422d9(0x130)](){const _0x197ff5={_0x4a0801:0x12f,_0x3fb4f9:0x164,_0xd1c65e:0x146},_0x23ffaf=_0x3422d9,_0x409b43=createRequire(import.meta.url),_0x308ff1=_0x409b43[_0x23ffaf(_0x197ff5._0x4a0801)](PACKAGE_NAME+_0x23ffaf(_0x197ff5._0x3fb4f9)),_0x354484=JSON['parse'](readFileSync(_0x308ff1,_0x23ffaf(0x170))),_0x3695e9=pickBin(_0x354484);if(!_0x3695e9)throw new Error(PACKAGE_NAME+_0x23ffaf(_0x197ff5._0xd1c65e));return join(dirname(_0x308ff1),_0x3695e9);}[_0x3422d9(0x134)](_0x484dc8){const _0x14a442={_0x5f5135:0x131,_0xf0c06c:0x15c,_0x514829:0x131,_0x24bfcb:0x163,_0x2e440f:0x135,_0x48e7bc:0x17c,_0xfa2871:0x189,_0x5b6093:0x12c,_0x2b1bbb:0x176,_0x4c55a4:0x176,_0x2fe19f:0x190,_0x295739:0x183,_0x4b0bbe:0x156,_0x43e45f:0x162},_0x2c90c2=_0x3422d9;if(_0x484dc8[_0x2c90c2(0x189)]===_0x2c90c2(_0x14a442._0x5f5135)){const _0x1aac58=[_0x2c90c2(_0x14a442._0xf0c06c),_0x484dc8[_0x2c90c2(_0x14a442._0x514829)]];if(_0x484dc8[_0x2c90c2(0x172)])_0x1aac58['push'](_0x2c90c2(_0x14a442._0x24bfcb));return _0x484dc8[_0x2c90c2(0x135)]&&_0x484dc8[_0x2c90c2(_0x14a442._0x2e440f)]['length']>0x0&&_0x1aac58[_0x2c90c2(_0x14a442._0x48e7bc)](_0x2c90c2(0x15f),_0x484dc8[_0x2c90c2(0x135)][_0x2c90c2(0x17f)](',')),_0x1aac58;}if(_0x484dc8[_0x2c90c2(_0x14a442._0xfa2871)]===_0x2c90c2(0x12c)){const _0x54fbd0=['collection',_0x484dc8[_0x2c90c2(_0x14a442._0x5b6093)]];_0x484dc8['workers']!==void 0x0&&_0x484dc8[_0x2c90c2(_0x14a442._0x2b1bbb)]>0x1&&_0x54fbd0[_0x2c90c2(_0x14a442._0x48e7bc)]('--workers='+_0x484dc8[_0x2c90c2(_0x14a442._0x4c55a4)]);if(_0x484dc8[_0x2c90c2(0x18c)])_0x54fbd0[_0x2c90c2(_0x14a442._0x48e7bc)](_0x2c90c2(_0x14a442._0x2fe19f));return _0x54fbd0;}if(_0x484dc8['kind']===_0x2c90c2(_0x14a442._0x295739))return[_0x2c90c2(_0x14a442._0x4b0bbe),_0x484dc8[_0x2c90c2(0x131)]];const _0xe56064=_0x484dc8;throw new UnsupportedRunKindError(_0xe56064[_0x2c90c2(_0x14a442._0xfa2871)],this[_0x2c90c2(_0x14a442._0x43e45f)]);}['buildEnv'](_0x18775e){const _0x16c27a={_0x2fe875:0x15e},_0xa970da=_0x3422d9,_0xafa23a={};if(_0x18775e[_0xa970da(_0x16c27a._0x2fe875)])_0xafa23a['UNOTEST_HEADED']='1';return _0xafa23a;}['appServerArgs'](){const _0x549114=_0x3422d9;return[_0x549114(0x18f)];}async[_0x3422d9(0x18d)](_0xadc4be){return runEnvironmentChecks({'cwd':_0xadc4be['projectRoot']});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x818ccb){const _0x2b7266={_0x5a17f8:0x157,_0x586f9a:0x142},_0x1c1b3b=_0x3422d9;if(typeof _0x818ccb[_0x1c1b3b(_0x2b7266._0x5a17f8)]===_0x1c1b3b(0x182))return _0x818ccb[_0x1c1b3b(0x157)];if(_0x818ccb[_0x1c1b3b(0x157)]&&typeof _0x818ccb['bin']===_0x1c1b3b(_0x2b7266._0x586f9a))return _0x818ccb['bin'][_0x1c1b3b(0x17d)]??Object['values'](_0x818ccb[_0x1c1b3b(0x157)])[0x0]??null;return null;}__name(pickBin,_0x3422d9(0x150));export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
1
|
+
const _0xa19e6d=_0x5c9b;(function(_0x407b55,_0x570b04){const _0x5c3238={_0x27fde6:0x122,_0x1bab9a:0xe5,_0x1f2f0c:0x121,_0x1557ce:0xd6,_0x4110dc:0xd5,_0x308105:0x101},_0x17f24f=_0x5c9b,_0x36aa52=_0x407b55();while(!![]){try{const _0x37aaf4=parseInt(_0x17f24f(_0x5c3238._0x27fde6))/0x1*(-parseInt(_0x17f24f(0x111))/0x2)+-parseInt(_0x17f24f(_0x5c3238._0x1bab9a))/0x3+parseInt(_0x17f24f(_0x5c3238._0x1f2f0c))/0x4*(parseInt(_0x17f24f(_0x5c3238._0x1557ce))/0x5)+parseInt(_0x17f24f(0x124))/0x6*(-parseInt(_0x17f24f(_0x5c3238._0x4110dc))/0x7)+parseInt(_0x17f24f(0xe8))/0x8+-parseInt(_0x17f24f(0x117))/0x9+parseInt(_0x17f24f(_0x5c3238._0x308105))/0xa;if(_0x37aaf4===_0x570b04)break;else _0x36aa52['push'](_0x36aa52['shift']());}catch(_0x20249e){_0x36aa52['push'](_0x36aa52['shift']());}}}(_0x73a1,0x3ba6e));var __defProp=Object['defineProperty'],__name=(_0x41d837,_0x51ac27)=>__defProp(_0x41d837,_0xa19e6d(0xd1),{'value':_0x51ac27,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';function _0x5c9b(_0x3c3739,_0x38f6de){_0x3c3739=_0x3c3739-0xc5;const _0x73a129=_0x73a1();let _0x5c9b7d=_0x73a129[_0x3c3739];if(_0x5c9b['LREKUO']===undefined){var _0x51efea=function(_0x2cd82b){const _0x210c01='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x475513='',_0x41d837='';for(let _0x51ac27=0x0,_0x129cb7,_0x4d42e9,_0x2860cd=0x0;_0x4d42e9=_0x2cd82b['charAt'](_0x2860cd++);~_0x4d42e9&&(_0x129cb7=_0x51ac27%0x4?_0x129cb7*0x40+_0x4d42e9:_0x4d42e9,_0x51ac27++%0x4)?_0x475513+=String['fromCharCode'](0xff&_0x129cb7>>(-0x2*_0x51ac27&0x6)):0x0){_0x4d42e9=_0x210c01['indexOf'](_0x4d42e9);}for(let _0x48fb33=0x0,_0x471390=_0x475513['length'];_0x48fb33<_0x471390;_0x48fb33++){_0x41d837+='%'+('00'+_0x475513['charCodeAt'](_0x48fb33)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41d837);};_0x5c9b['HEVGBT']=_0x51efea,_0x5c9b['WGISyv']={},_0x5c9b['LREKUO']=!![];}const _0x1a0179=_0x73a129[0x0],_0x264ebe=_0x3c3739+_0x1a0179,_0x4520d0=_0x5c9b['WGISyv'][_0x264ebe];return!_0x4520d0?(_0x5c9b7d=_0x5c9b['HEVGBT'](_0x5c9b7d),_0x5c9b['WGISyv'][_0x264ebe]=_0x5c9b7d):_0x5c9b7d=_0x4520d0,_0x5c9b7d;}import{existsSync as _0x475513}from'fs';function _0x73a1(){const _0xbe0eeb=['v2vIuNvUBMvYqwrHChrLCG','D29YA2vYCW','BgfIzwW','uhjVz3jHBuzPBgvZkhG4nIK','qhvUB3rLC3qVD2vI','y2HLy2TxCML0ywjSzun3za','AxngAw5PDgu','ntu2mtj4r1vyv1C','mxnbtuznzG','CNvUrw52AxjVBM1LBNrdAgvJA3m','mZa5nJmWuNzfBKPq','D2fYBMLUzW','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','tM9Kzs5QCYb2zxjZAw9U','AM9PBG','y29SBgvJDgLVBG','zxjYB3i','te9dquXbufbeqvrb','z29Vz2XLlwnOCM9Tzq','AgvHzgvK','twLJCM9ZB2z0ievKz2u','zw52','yxv0Ag9YAw5N','BMfTzq','y2HYB21PDw0','y2HLy2TtExn0zw1cCM93C2vY','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','n0zeq25jyW','nZbUB1zIzve','D2LUmZi','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','uhjVz3jHBuzPBgvZ','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','igrVzxmGBM90igv4Axn0','u3LZDgvTigjYB3DZzxi','yNjLywTWB2LUDhm','DhjPBq','CMvZB2X2zq','D2HPy2HpzG','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','y2HYB21PDw0TyNjVD3nLCG','zgfYD2LU','CMvZB2X2zujPBG','nJqZnZCZzMz6Cxbs','ChvZAa','BgvUz3rO','ody5mdqWuuLsCu54','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','BxnLzgDL','ls1ICMvHAW','igzVDw5K','D2HPy2G','C3rYAw5N','yxbWlxnLCNzLCG','yMfPBa','ChjVyMvdAhjVBwvczxrH','DMvYC2LVBNm','B2jQzwn0','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','C3bSAxq','zMLYC3rfEgLZDgLUz1bHDgG','DMfSDwvZ','y2HYB21LlwjLDge','C3vWCg9YDgvKs2LUzhm','BM9Kzq','zg9JDg9Y','r29Vz2XLienOCM9TzsbczxrH','DgfYz2v0ia','y2HHBM5LBa','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','mtaYmde2nZbwqvPKthe','C3vMzML4','vu5pvevtvf9iruferuq','y3DK','DxrMoa','r29Vz2XLienOCM9Tzq','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','Cgf0Aa','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','CgfYC2u','C2nLBMfYAw8','Dw5KzwzPBMvK','yMLU','vgfYz2v0igrPCMvJDg9YEq','ls1IywLS','otu4otmWuuHIz1HS','ChjVyMvtExn0zw1cCM93C2vY','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ztjL','A2LUza','CgXHDgzVCM0','mZaWmdK5nNj5AvrzCW','y2HYB21L','ChjVyMvfzgDL'];_0x73a1=function(){return _0xbe0eeb;};return _0x73a1();}import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){for(const _0x129cb7 of[probeChrome,probeEdge,probeChromeBeta]){const _0x4d42e9=_0x129cb7();if(_0x4d42e9['channel']!==null)return _0x4d42e9;}return{'channel':null};}__name(probeSystemBrowser,_0xa19e6d(0x112));function probeChrome(){const _0x48e40c={_0x532914:0x106},_0xb864f5=_0xa19e6d,_0x2860cd=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x2860cd)return{'channel':_0xb864f5(0x118),'path':_0x2860cd,'label':_0xb864f5(_0x48e40c._0x532914)};return{'channel':null};}__name(probeChrome,'probeChrome');function probeEdge(){const _0x3137d5={_0x3c27f6:0xea},_0x5ca39d=_0xa19e6d,_0x48fb33=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x48fb33)return{'channel':_0x5ca39d(_0x3137d5._0x3c27f6),'path':_0x48fb33,'label':_0x5ca39d(0xce)};return{'channel':null};}__name(probeEdge,_0xa19e6d(0x119));function probeChromeBeta(){const _0xf24d89={_0x150317:0xf8},_0x4b5586=_0xa19e6d,_0x471390=firstExistingPath(CHROME_BETA_PATHS);if(_0x471390)return{'channel':_0x4b5586(_0xf24d89._0x150317),'path':_0x471390,'label':_0x4b5586(0xfc)};return{'channel':null};}__name(probeChromeBeta,_0xa19e6d(0xf1));var CHROME_PATHS=((()=>{const _0x417086={_0x16e3da:0x116,_0x1d2920:0xe3,_0x2afd92:0xc6,_0x4338c3:0xd7,_0x4e07d4:0xcf,_0x3d234f:0xd9,_0x5b8545:0xe1,_0x4f8904:0xcb},_0x23cc1a=_0xa19e6d;switch(process[_0x23cc1a(_0x417086._0x16e3da)]){case _0x23cc1a(_0x417086._0x1d2920):return[_0x23cc1a(_0x417086._0x2afd92)];case _0x23cc1a(_0x417086._0x4338c3):return[process[_0x23cc1a(_0x417086._0x4e07d4)][_0x23cc1a(_0x417086._0x3d234f)]+_0x23cc1a(_0x417086._0x5b8545),process[_0x23cc1a(0xcf)]['ProgramFiles(x86)']+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process['env'][_0x23cc1a(_0x417086._0x4f8904)]+_0x23cc1a(0xe1)];default:return['/usr/bin/google-chrome','/usr/bin/google-chrome-stable','/snap/bin/google-chrome','/usr/bin/chromium','/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=[_0xa19e6d(0xcc),_0xa19e6d(0xd4),_0xa19e6d(0xd2),_0xa19e6d(0xe2)],EDGE_PATHS=((()=>{const _0x9414d3={_0x8cd642:0x116,_0x14e9d2:0xd7,_0x5f3ed7:0xcf,_0xfeef77:0xda},_0x282fdc=_0xa19e6d;switch(process[_0x282fdc(_0x9414d3._0x8cd642)]){case _0x282fdc(0xe3):return['/Applications/Microsoft\x20Edge.app/Contents/MacOS/Microsoft\x20Edge'];case _0x282fdc(_0x9414d3._0x14e9d2):return[process['env']['ProgramFiles']+_0x282fdc(0xf4),process[_0x282fdc(_0x9414d3._0x5f3ed7)][_0x282fdc(0x11d)]+_0x282fdc(0xf4)];default:return[_0x282fdc(0xd8),_0x282fdc(_0x9414d3._0xfeef77)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0xa19e6d(0x113)],CHROME_BETA_PATHS=((()=>{const _0x2d88ed={_0x393981:0xe3,_0x4427ff:0xff,_0x2f9d87:0x108},_0x2e5a21=_0xa19e6d;switch(process['platform']){case _0x2e5a21(_0x2d88ed._0x393981):return[_0x2e5a21(0x107)];case _0x2e5a21(0xd7):return[process[_0x2e5a21(0xcf)][_0x2e5a21(0xd9)]+_0x2e5a21(_0x2d88ed._0x4427ff)];default:return[_0x2e5a21(_0x2d88ed._0x2f9d87)];}})());function firstExistingPath(_0x3cf14c){const _0x2d11f5=_0xa19e6d;for(const _0x312b20 of _0x3cf14c){if(!_0x312b20||_0x312b20['startsWith'](_0x2d11f5(0x10d)))continue;if(existsSync(_0x312b20))return _0x312b20;}return null;}__name(firstExistingPath,_0xa19e6d(0xf6));function whichOf(_0x35cda7){const _0x49b7f5={_0x562a04:0x116,_0x4c3932:0x105,_0x549355:0xde},_0x2c8ae8=_0xa19e6d;if(process[_0x2c8ae8(_0x49b7f5._0x562a04)]===_0x2c8ae8(0xd7))return void 0x0;for(const _0x29cea1 of _0x35cda7){try{const _0x1427b5=execFileSync(_0x2c8ae8(0xed),[_0x29cea1],{'encoding':_0x2c8ae8(_0x49b7f5._0x4c3932)})[_0x2c8ae8(_0x49b7f5._0x549355)]();if(_0x1427b5['length']>0x0&&existsSync(_0x1427b5))return _0x1427b5;}catch{}}return void 0x0;}__name(whichOf,_0xa19e6d(0xe0));function runEnvironmentChecks(_0x1aa066={}){const _0xac02ed={_0x332d83:0x104,_0x43a337:0x104},_0x34c091=_0xa19e6d,_0x44cd11=_0x1aa066[_0x34c091(_0xac02ed._0x332d83)]??process[_0x34c091(_0xac02ed._0x43a337)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x44cd11)];}__name(runEnvironmentChecks,_0xa19e6d(0x123));function checkNodeVersion(){const _0x4e52f0={_0x36e108:0xfa,_0x5c072d:0xf5,_0x3f39c8:0x120,_0x33af8a:0xc7,_0x1c1809:0xca},_0x258eac=_0xa19e6d,_0x59050a=process[_0x258eac(0xf2)][_0x258eac(_0x4e52f0._0x36e108)],_0xf14ef7=Number(_0x59050a[_0x258eac(_0x4e52f0._0x5c072d)]('.')[0x0]);if(!Number[_0x258eac(_0x4e52f0._0x3f39c8)](_0xf14ef7)||_0xf14ef7<0x14)return{'name':_0x258eac(_0x4e52f0._0x33af8a),'severity':_0x258eac(_0x4e52f0._0x1c1809),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x59050a+')','detail':_0x258eac(0x100)};return{'name':'Node.js\x20version','severity':'ok','message':_0x59050a};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x45356c={_0x37206c:0xc5,_0x117cab:0xe9},_0x163e17=_0xa19e6d,_0xc4d59f=probeSystemBrowser();if(_0xc4d59f[_0x163e17(0xfe)]!==null)return{'name':'System\x20browser','severity':'ok','message':_0xc4d59f[_0x163e17(0x11c)]+_0x163e17(0xec),'detail':_0xc4d59f[_0x163e17(0x109)]};return{'name':_0x163e17(0xdc),'severity':_0x163e17(_0x45356c._0x37206c),'message':_0x163e17(_0x45356c._0x117cab),'detail':'init\x20will\x20offer\x20to\x20download\x20bundled\x20Chromium\x20(~150\x20MB).\x20Alternatively,\x20install\x20Chrome\x20from\x20https://www.google.com/chrome\x20and\x20re-run.'};}__name(checkSystemBrowser,_0xa19e6d(0xd3));function checkWritableCwd(_0x10ed33){const _0x1d92a4={_0x362d30:0x10f,_0x3a6bc4:0xdb},_0xe95cc2=_0xa19e6d;if(!_0x475513(_0x10ed33))return{'name':_0xe95cc2(_0x1d92a4._0x362d30),'severity':_0xe95cc2(0xca),'message':_0xe95cc2(0xfd)+_0x10ed33+_0xe95cc2(_0x1d92a4._0x3a6bc4),'detail':_0xe95cc2(0x10a)};return{'name':'Target\x20directory','severity':'ok','message':_0x10ed33};}__name(checkWritableCwd,_0xa19e6d(0x11f));var PACKAGE_NAME=_0xa19e6d(0x11e),WebRunnerAdapter=class{static{__name(this,_0xa19e6d(0x11a));}[_0xa19e6d(0xd1)]=PACKAGE_NAME;[_0xa19e6d(0x102)]='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0xa19e6d(0xf9)]=['scenario','collection',_0xa19e6d(0xd0)];[_0xa19e6d(0xe4)](){const _0x4f059d={_0x57debc:0x10b,_0x1c3591:0x105},_0x10eb2e=_0xa19e6d,_0x4b4c97=createRequire(import.meta.url),_0x5487c7=_0x4b4c97[_0x10eb2e(0xdf)](PACKAGE_NAME+'/package.json'),_0x6e39d6=JSON[_0x10eb2e(_0x4f059d._0x57debc)](readFileSync(_0x5487c7,_0x10eb2e(_0x4f059d._0x1c3591))),_0x5c40b6=pickBin(_0x6e39d6);if(!_0x5c40b6)throw new Error(PACKAGE_NAME+'\x20package.json\x20declares\x20no\x20\x27bin\x27\x20field\x20—\x20broken\x20install?');return join(dirname(_0x5487c7),_0x5c40b6);}['buildArgs'](_0x36b11c){const _0x3ca75f={_0x229978:0x10c,_0x406359:0x114,_0x307421:0xdd,_0x373a76:0xeb,_0x80a5d0:0xc8,_0x47c285:0xc9,_0x2465c8:0x11b,_0x264115:0xe6,_0x5ad369:0x110},_0x2af252=_0xa19e6d;if(_0x36b11c[_0x2af252(0x115)]===_0x2af252(_0x3ca75f._0x229978)){const _0xe80fb1=[_0x2af252(_0x3ca75f._0x406359),_0x36b11c['scenario']];if(_0x36b11c['debug'])_0xe80fb1['push']('--debug');return _0x36b11c['breakpoints']&&_0x36b11c[_0x2af252(_0x3ca75f._0x307421)][_0x2af252(0xe7)]>0x0&&_0xe80fb1['push'](_0x2af252(_0x3ca75f._0x373a76),_0x36b11c[_0x2af252(_0x3ca75f._0x307421)][_0x2af252(_0x3ca75f._0x80a5d0)](',')),_0xe80fb1;}if(_0x36b11c['kind']==='collection'){const _0x40e11f=[_0x2af252(_0x3ca75f._0x47c285),_0x36b11c[_0x2af252(_0x3ca75f._0x47c285)]];_0x36b11c[_0x2af252(0x11b)]!==void 0x0&&_0x36b11c[_0x2af252(_0x3ca75f._0x2465c8)]>0x1&&_0x40e11f['push']('--workers='+_0x36b11c[_0x2af252(0x11b)]);if(_0x36b11c[_0x2af252(0xf0)])_0x40e11f[_0x2af252(_0x3ca75f._0x264115)](_0x2af252(_0x3ca75f._0x5ad369));return _0x40e11f;}if(_0x36b11c['kind']==='authoring')return['author',_0x36b11c[_0x2af252(0x10c)]];const _0x1a1db8=_0x36b11c;throw new UnsupportedRunKindError(_0x1a1db8['kind'],this[_0x2af252(0xd1)]);}['buildEnv'](_0x3c4d66){const _0x4242ce={_0x3a79a7:0xcd,_0x1f1114:0x103},_0x8be34f=_0xa19e6d,_0x543c28={};if(_0x3c4d66[_0x8be34f(_0x4242ce._0x3a79a7)])_0x543c28[_0x8be34f(_0x4242ce._0x1f1114)]='1';return _0x543c28;}['appServerArgs'](){const _0x1008d4=_0xa19e6d;return[_0x1008d4(0xef)];}async[_0xa19e6d(0xfb)](_0x32b1c6){return runEnvironmentChecks({'cwd':_0x32b1c6['projectRoot']});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x51df6d){const _0x4ca32a={_0x4f4721:0x10e,_0xed0a88:0xf7},_0x5c7818=_0xa19e6d;if(typeof _0x51df6d[_0x5c7818(_0x4ca32a._0x4f4721)]===_0x5c7818(0xee))return _0x51df6d[_0x5c7818(_0x4ca32a._0x4f4721)];if(_0x51df6d['bin']&&typeof _0x51df6d[_0x5c7818(0x10e)]===_0x5c7818(0xf3))return _0x51df6d[_0x5c7818(0x10e)]['unotest-web']??Object[_0x5c7818(_0x4ca32a._0xed0a88)](_0x51df6d[_0x5c7818(_0x4ca32a._0x4f4721)])[0x0]??null;return null;}__name(pickBin,'pickBin');export{web_runner_adapter_default as default,webRunnerAdapter};
|
|
@@ -122,6 +122,15 @@ directly. Detailed workflow in `debugger-tools.md`.
|
|
|
122
122
|
- `run_test` — load `unotest/e2e/<name>.js`, start an AST execution.
|
|
123
123
|
Modes: `auto` (run to completion / failure), `step` (pause after every
|
|
124
124
|
statement). `pauseOnFailure` defaults to `true`.
|
|
125
|
+
Runs of one project take turns: while someone else is driving the
|
|
126
|
+
machine — a human's run in the viewer, another terminal, a scheduled
|
|
127
|
+
suite — this run waits in the project's queue and starts by itself. A
|
|
128
|
+
blocking call just takes longer; `wait: false` answers
|
|
129
|
+
`status: "queued"`. Rerunning a queued run does not unstick it, it
|
|
130
|
+
only adds a second ticket — and `abort_runtime` does not reach it
|
|
131
|
+
either (it speaks through the run directory, which a run that has not
|
|
132
|
+
started does not have yet). A queued run is cancelled from the
|
|
133
|
+
viewer's Active panel, or simply left to start.
|
|
125
134
|
- `step` — advance one AST node. Returns the next event.
|
|
126
135
|
- `resume` — run until next pause / completion / failure.
|
|
127
136
|
- `inspect_runtime` — snapshot of runtime state: current line, last
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unotest/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
4
4
|
"description": "AI-native E2E testing for web applications. MCP server (run_test / step / resume / inspect_runtime / agent_fix) + CLI runner + JavaScript DSL scenarios on a sandboxed AST engine + semantic DOM snapshots.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -83,18 +83,18 @@
|
|
|
83
83
|
"tsx": "^4.19.2",
|
|
84
84
|
"yaml": "^2.6.0",
|
|
85
85
|
"zod": "^3.23.8",
|
|
86
|
-
"@unotest/
|
|
87
|
-
"@unotest/
|
|
88
|
-
"@unotest/
|
|
89
|
-
"@unotest/
|
|
90
|
-
"@unotest/
|
|
86
|
+
"@unotest/core": "^0.26.1",
|
|
87
|
+
"@unotest/dsl": "^0.26.1",
|
|
88
|
+
"@unotest/viewer": "^0.26.1",
|
|
89
|
+
"@unotest/protocol": "^0.26.1",
|
|
90
|
+
"@unotest/grounder-client": "^0.26.1"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"@types/node": "^22.10.0",
|
|
94
94
|
"javascript-obfuscator": "^4.1.1",
|
|
95
95
|
"tsup": "^8.5.1",
|
|
96
96
|
"typescript": "^5.7.2",
|
|
97
|
-
"@unotest/
|
|
98
|
-
"@unotest/
|
|
97
|
+
"@unotest/grounder": "^0.26.1",
|
|
98
|
+
"@unotest/judge": "^0.26.1"
|
|
99
99
|
}
|
|
100
100
|
}
|