UNPKG

synthia-test

Version:

Synthia Engine Test Plugin - 提供测试功能的 Synthia 插件

10 lines (7 loc) 6.67 kB
'use strict'; var fs = require('fs'); var path = require('path'); function C(a={}){return async(e,t)=>{let{registerCommand:n,logger:s,fs:o}=e;s.info("\u{1F9EA} \u521D\u59CB\u5316 Test \u63D2\u4EF6...");let r={enabled:true,framework:"vitest",watch:false,coverage:false,ci:false,pattern:"src/**/*.test.{ts,js,tsx,jsx}",config:"",vitest:{enabled:true,config:"vitest.config.ts",ui:false},jest:{enabled:false,config:"jest.config.ts",watchAll:false},mocha:{enabled:false,config:".mocharc.js",reporter:"spec"},cypress:{enabled:false,config:"cypress.config.ts",headless:false,browser:"chromium"},playwright:{enabled:false,config:"playwright.config.ts",headless:false,browser:"chromium"},coverageConfig:{enabled:false,threshold:80,reporters:["text","html"],output:"coverage"},...a},l=await u(o,t.project.root);l&&["vitest","jest","mocha","cypress","playwright"].includes(l)&&(r.framework=l,s.info(`\u{1F50D} \u68C0\u6D4B\u5230\u6D4B\u8BD5\u6846\u67B6: ${l}`)),n({name:"test",description:"\u8FD0\u884C\u6D4B\u8BD5\u5957\u4EF6",options:[{flags:"--watch",description:"\u76D1\u542C\u6A21\u5F0F\u8FD0\u884C\u6D4B\u8BD5",type:"boolean"},{flags:"--coverage",description:"\u751F\u6210\u6D4B\u8BD5\u8986\u76D6\u7387\u62A5\u544A",type:"boolean"},{flags:"--ci",description:"CI\u6A21\u5F0F\u8FD0\u884C\u6D4B\u8BD5",type:"boolean"},{flags:"--framework <framework>",description:"\u6307\u5B9A\u6D4B\u8BD5\u6846\u67B6 (vitest|jest|mocha|cypress|playwright)"},{flags:"--pattern <pattern>",description:"\u6587\u4EF6\u5339\u914D\u6A21\u5F0F"},{flags:"--config <config>",description:"\u6307\u5B9A\u914D\u7F6E\u6587\u4EF6"},{flags:"--ui",description:"\u542F\u52A8UI\u754C\u9762 (\u4EC5Vitest)",type:"boolean"},{flags:"--headless",description:"\u65E0\u5934\u6A21\u5F0F\u8FD0\u884C (\u4EC5Cypress|Playwright)",type:"boolean"},{flags:"--browser <browser>",description:"\u6307\u5B9A\u6D4F\u89C8\u5668 (\u4EC5Cypress|Playwright)",defaultValue:"chromium"},{flags:"--threshold <threshold>",description:"\u8BBE\u7F6E\u8986\u76D6\u7387\u9608\u503C",type:"number"}],action:async i=>{let c={...r,watch:i.watch||r.watch,coverage:i.coverage||r.coverage,ci:i.ci||r.ci,framework:i.framework||r.framework,pattern:i.pattern||r.pattern,config:i.config||r.config,ui:i.ui||r.vitest?.ui,headless:i.headless||r.cypress?.headless||r.playwright?.headless,browser:i.browser||r.cypress?.browser||r.playwright?.browser,threshold:i.threshold?parseInt(i.threshold):r.coverageConfig.threshold};try{c.watch?(s.info("\u{1F440} \u542F\u52A8\u6D4B\u8BD5\u76D1\u542C\u6A21\u5F0F..."),await w(c,s,o,t.project.root)):c.coverage?(s.info("\u{1F4CA} \u751F\u6210\u6D4B\u8BD5\u8986\u76D6\u7387\u62A5\u544A..."),await g(c,s,o,t.project.root)):c.ci?(s.info("\u{1F680} CI\u6A21\u5F0F\u8FD0\u884C\u6D4B\u8BD5..."),await h(c,s,o,t.project.root)):(s.info("\u{1F3C3} \u8FD0\u884C\u6D4B\u8BD5..."),await h(c,s,o,t.project.root));}catch(y){s.error("\u274C \u6D4B\u8BD5\u8FD0\u884C\u5931\u8D25:",y);}}}),s.success("Test \u63D2\u4EF6\u521D\u59CB\u5316\u5B8C\u6210");}}async function u(a,e){let t=path.join(e,"package.json");if(!fs.existsSync(t))return null;let n=JSON.parse(fs.readFileSync(t,"utf8")),s={...n.dependencies,...n.devDependencies};return s.vitest?"vitest":s.jest?"jest":s.mocha?"mocha":s.cypress?"cypress":s.playwright?"playwright":null}async function h(a,e,t,n){switch(e.info(`\u{1F527} \u4F7F\u7528\u6D4B\u8BD5\u6846\u67B6: ${a.framework}`),a.framework){case "vitest":await b(a,e,n);break;case "jest":await m(a,e,n);break;case "mocha":await k(a,e,n);break;case "cypress":await v(a,e,n);break;case "playwright":await P(a,e,n);break;default:e.warn(`\u26A0\uFE0F \u4E0D\u652F\u6301\u7684\u6D4B\u8BD5\u6846\u67B6: ${a.framework}`);}e.success("\u6D4B\u8BD5\u8FD0\u884C\u5B8C\u6210");}async function w(a,e,t,n){switch(e.info("\u{1F440} \u542F\u52A8\u6D4B\u8BD5\u76D1\u542C\u6A21\u5F0F..."),a.framework){case "vitest":e.info("\u26A1 \u542F\u52A8 Vitest \u76D1\u542C\u6A21\u5F0F...");break;case "jest":e.info("\u{1F3AF} \u542F\u52A8 Jest \u76D1\u542C\u6A21\u5F0F...");break;default:e.warn(`\u26A0\uFE0F ${a.framework} \u6682\u4E0D\u652F\u6301\u76D1\u542C\u6A21\u5F0F`);}e.success("\u6D4B\u8BD5\u76D1\u542C\u6A21\u5F0F\u5DF2\u542F\u52A8");}async function g(a,e,t,n){switch(e.info("\u{1F4CA} \u542F\u52A8\u6D4B\u8BD5\u8986\u76D6\u7387\u62A5\u544A..."),a.framework){case "vitest":e.info("\u26A1 \u751F\u6210 Vitest \u8986\u76D6\u7387\u62A5\u544A...");break;case "jest":e.info("\u{1F3AF} \u751F\u6210 Jest \u8986\u76D6\u7387\u62A5\u544A...");break;default:e.warn(`\u26A0\uFE0F ${a.framework} \u6682\u4E0D\u652F\u6301\u8986\u76D6\u7387\u62A5\u544A`);}e.success("\u6D4B\u8BD5\u8986\u76D6\u7387\u62A5\u544A\u751F\u6210\u5B8C\u6210");}async function b(a,e,t){e.info("\u26A1 \u8FD0\u884C Vitest \u6D4B\u8BD5...");let n=path.join(t,"package.json");if(fs.existsSync(n)){let s=JSON.parse(fs.readFileSync(n,"utf8"));if(!{...s.dependencies,...s.devDependencies}.vitest){e.warn("\u26A0\uFE0F Vitest \u672A\u5B89\u88C5\uFF0C\u8BF7\u5148\u5B89\u88C5: pnpm add -D vitest");return}}e.success("Vitest \u6D4B\u8BD5\u5B8C\u6210");}async function m(a,e,t){e.info("\u{1F3AF} \u8FD0\u884C Jest \u6D4B\u8BD5...");let n=path.join(t,"package.json");if(fs.existsSync(n)){let s=JSON.parse(fs.readFileSync(n,"utf8"));if(!{...s.dependencies,...s.devDependencies}.jest){e.warn("\u26A0\uFE0F Jest \u672A\u5B89\u88C5\uFF0C\u8BF7\u5148\u5B89\u88C5: pnpm add -D jest");return}}e.success("Jest \u6D4B\u8BD5\u5B8C\u6210");}async function k(a,e,t){e.info("\u2615 \u8FD0\u884C Mocha \u6D4B\u8BD5...");let n=path.join(t,"package.json");if(fs.existsSync(n)){let s=JSON.parse(fs.readFileSync(n,"utf8"));if(!{...s.dependencies,...s.devDependencies}.mocha){e.warn("\u26A0\uFE0F Mocha \u672A\u5B89\u88C5\uFF0C\u8BF7\u5148\u5B89\u88C5: pnpm add -D mocha");return}}e.success("Mocha \u6D4B\u8BD5\u5B8C\u6210");}async function v(a,e,t){e.info("\u{1F332} \u8FD0\u884C Cypress \u6D4B\u8BD5...");let n=path.join(t,"package.json");if(fs.existsSync(n)){let s=JSON.parse(fs.readFileSync(n,"utf8"));if(!{...s.dependencies,...s.devDependencies}.cypress){e.warn("\u26A0\uFE0F Cypress \u672A\u5B89\u88C5\uFF0C\u8BF7\u5148\u5B89\u88C5: pnpm add -D cypress");return}}e.success("Cypress \u6D4B\u8BD5\u5B8C\u6210");}async function P(a,e,t){e.info("\u{1F3AD} \u8FD0\u884C Playwright \u6D4B\u8BD5...");let n=path.join(t,"package.json");if(fs.existsSync(n)){let s=JSON.parse(fs.readFileSync(n,"utf8"));if(!{...s.dependencies,...s.devDependencies}.playwright){e.warn("\u26A0\uFE0F Playwright \u672A\u5B89\u88C5\uFF0C\u8BF7\u5148\u5B89\u88C5: pnpm add -D playwright");return}}e.success("Playwright \u6D4B\u8BD5\u5B8C\u6210");} exports.testPlugin = C; //# sourceMappingURL=out.js.map //# sourceMappingURL=index.js.map