@silasfmartins/testhub 1.0.0

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.
Files changed (296) hide show
  1. package/.github/copilot-instructions.md +520 -0
  2. package/biome.json +37 -0
  3. package/dist/index.d.ts +45 -0
  4. package/dist/index.js +169 -0
  5. package/dist/scripts/consumer-postinstall.d.ts +15 -0
  6. package/dist/scripts/consumer-postinstall.js +785 -0
  7. package/dist/scripts/generate-docs.d.ts +16 -0
  8. package/dist/scripts/generate-docs.js +1363 -0
  9. package/dist/scripts/generate-index.d.ts +2 -0
  10. package/dist/scripts/generate-index.js +314 -0
  11. package/dist/scripts/init-api.d.ts +2 -0
  12. package/dist/scripts/init-api.js +525 -0
  13. package/dist/scripts/init-banco.d.ts +2 -0
  14. package/dist/scripts/init-banco.js +347 -0
  15. package/dist/scripts/init-frontend.d.ts +2 -0
  16. package/dist/scripts/init-frontend.js +627 -0
  17. package/dist/scripts/init-mobile.d.ts +2 -0
  18. package/dist/scripts/init-mobile.js +481 -0
  19. package/dist/scripts/init-scenarios.d.ts +2 -0
  20. package/dist/scripts/init-scenarios.js +846 -0
  21. package/dist/scripts/init-ssh.d.ts +2 -0
  22. package/dist/scripts/init-ssh.js +639 -0
  23. package/dist/scripts/package-versions.d.ts +57 -0
  24. package/dist/scripts/package-versions.js +768 -0
  25. package/dist/scripts/postinstall.d.ts +1 -0
  26. package/dist/scripts/postinstall.js +527 -0
  27. package/dist/scripts/robust-build.d.ts +7 -0
  28. package/dist/scripts/robust-build.js +88 -0
  29. package/dist/scripts/setup-local-packages.d.ts +31 -0
  30. package/dist/scripts/setup-local-packages.js +237 -0
  31. package/dist/scripts/smart-override.d.ts +2 -0
  32. package/dist/scripts/smart-override.js +1360 -0
  33. package/dist/scripts/sync-configs.d.ts +27 -0
  34. package/dist/scripts/sync-configs.js +248 -0
  35. package/dist/scripts/test-biome-parse.d.ts +5 -0
  36. package/dist/scripts/test-biome-parse.js +84 -0
  37. package/dist/scripts/ultracite-setup.d.ts +4 -0
  38. package/dist/scripts/ultracite-setup.js +310 -0
  39. package/dist/scripts/update-all-init-scripts.d.ts +2 -0
  40. package/dist/scripts/update-all-init-scripts.js +52 -0
  41. package/dist/scripts/update-biome-schema.d.ts +15 -0
  42. package/dist/scripts/update-biome-schema.js +124 -0
  43. package/dist/src/AutoCoreFacade.d.ts +145 -0
  44. package/dist/src/AutoCoreFacade.js +217 -0
  45. package/dist/src/api/ApiActions.d.ts +297 -0
  46. package/dist/src/api/ApiActions.js +1905 -0
  47. package/dist/src/api/Certificate.d.ts +60 -0
  48. package/dist/src/api/Certificate.js +79 -0
  49. package/dist/src/api/JsonResponse.d.ts +116 -0
  50. package/dist/src/api/JsonResponse.js +206 -0
  51. package/dist/src/appium/DeviceFarmViewer.d.ts +79 -0
  52. package/dist/src/appium/DeviceFarmViewer.js +1083 -0
  53. package/dist/src/appium/MobileActions.d.ts +347 -0
  54. package/dist/src/appium/MobileActions.js +1632 -0
  55. package/dist/src/appium/MobileConnection.d.ts +160 -0
  56. package/dist/src/appium/MobileConnection.js +772 -0
  57. package/dist/src/config/envLoader.d.ts +123 -0
  58. package/dist/src/config/envLoader.js +361 -0
  59. package/dist/src/config/jest-safe-setup.d.ts +19 -0
  60. package/dist/src/config/jest-safe-setup.js +369 -0
  61. package/dist/src/config/timeouts.d.ts +32 -0
  62. package/dist/src/config/timeouts.js +38 -0
  63. package/dist/src/desktop/DesktopActions.d.ts +46 -0
  64. package/dist/src/desktop/DesktopActions.js +398 -0
  65. package/dist/src/desktop/DesktopConnection.d.ts +32 -0
  66. package/dist/src/desktop/DesktopConnection.js +84 -0
  67. package/dist/src/domain/entities/TestExecution.d.ts +117 -0
  68. package/dist/src/domain/entities/TestExecution.js +150 -0
  69. package/dist/src/domain/entities/TestReport.d.ts +114 -0
  70. package/dist/src/domain/entities/TestReport.js +179 -0
  71. package/dist/src/domain/repositories/ITestRepository.d.ts +196 -0
  72. package/dist/src/domain/repositories/ITestRepository.js +14 -0
  73. package/dist/src/domain/schemas/ValidationSchemas.d.ts +159 -0
  74. package/dist/src/domain/schemas/ValidationSchemas.js +181 -0
  75. package/dist/src/functions/errors/BaseError.d.ts +78 -0
  76. package/dist/src/functions/errors/BaseError.js +245 -0
  77. package/dist/src/functions/errors/ConfigurationError.d.ts +16 -0
  78. package/dist/src/functions/errors/ConfigurationError.js +48 -0
  79. package/dist/src/functions/errors/ErrorCatalog.d.ts +148 -0
  80. package/dist/src/functions/errors/ErrorCatalog.js +157 -0
  81. package/dist/src/functions/errors/GlobalErrorHandler.d.ts +101 -0
  82. package/dist/src/functions/errors/GlobalErrorHandler.js +281 -0
  83. package/dist/src/functions/errors/IntegrationError.d.ts +17 -0
  84. package/dist/src/functions/errors/IntegrationError.js +51 -0
  85. package/dist/src/functions/errors/SecurityError.d.ts +14 -0
  86. package/dist/src/functions/errors/SecurityError.js +42 -0
  87. package/dist/src/functions/errors/SystemError.d.ts +12 -0
  88. package/dist/src/functions/errors/SystemError.js +36 -0
  89. package/dist/src/functions/errors/ValidationError.d.ts +14 -0
  90. package/dist/src/functions/errors/ValidationError.js +61 -0
  91. package/dist/src/functions/errors/index.d.ts +12 -0
  92. package/dist/src/functions/errors/index.js +13 -0
  93. package/dist/src/global-setup.d.ts +1 -0
  94. package/dist/src/global-setup.js +1037 -0
  95. package/dist/src/helpers/BancoActions.d.ts +188 -0
  96. package/dist/src/helpers/BancoActions.js +581 -0
  97. package/dist/src/helpers/EnviromentHelper.d.ts +17 -0
  98. package/dist/src/helpers/EnviromentHelper.js +66 -0
  99. package/dist/src/helpers/ParallelExecutionHelper.d.ts +183 -0
  100. package/dist/src/helpers/ParallelExecutionHelper.js +375 -0
  101. package/dist/src/helpers/SyncSignal.d.ts +15 -0
  102. package/dist/src/helpers/SyncSignal.js +44 -0
  103. package/dist/src/hubdocs/CategoryDetector.d.ts +83 -0
  104. package/dist/src/hubdocs/CategoryDetector.js +401 -0
  105. package/dist/src/hubdocs/DirectStatementInterceptor.d.ts +54 -0
  106. package/dist/src/hubdocs/DirectStatementInterceptor.js +243 -0
  107. package/dist/src/hubdocs/ExecutionTracker.d.ts +107 -0
  108. package/dist/src/hubdocs/ExecutionTracker.js +702 -0
  109. package/dist/src/hubdocs/HubDocs.d.ts +395 -0
  110. package/dist/src/hubdocs/HubDocs.js +3586 -0
  111. package/dist/src/hubdocs/StatementMethodFilter.d.ts +71 -0
  112. package/dist/src/hubdocs/StatementMethodFilter.js +618 -0
  113. package/dist/src/hubdocs/StatementTracker.d.ts +417 -0
  114. package/dist/src/hubdocs/StatementTracker.js +2419 -0
  115. package/dist/src/hubdocs/SwaggerGenerator.d.ts +59 -0
  116. package/dist/src/hubdocs/SwaggerGenerator.js +405 -0
  117. package/dist/src/hubdocs/index.d.ts +9 -0
  118. package/dist/src/hubdocs/index.js +9 -0
  119. package/dist/src/hubdocs/types.d.ts +114 -0
  120. package/dist/src/hubdocs/types.js +5 -0
  121. package/dist/src/infrastructure/DependencyContainer.d.ts +142 -0
  122. package/dist/src/infrastructure/DependencyContainer.js +250 -0
  123. package/dist/src/infrastructure/adapters/AppiumAdapter.d.ts +168 -0
  124. package/dist/src/infrastructure/adapters/AppiumAdapter.js +468 -0
  125. package/dist/src/infrastructure/adapters/OracleAdapter.d.ts +150 -0
  126. package/dist/src/infrastructure/adapters/OracleAdapter.js +388 -0
  127. package/dist/src/infrastructure/adapters/PlaywrightAdapter.d.ts +192 -0
  128. package/dist/src/infrastructure/adapters/PlaywrightAdapter.js +382 -0
  129. package/dist/src/infrastructure/adapters/SSHAdapter.d.ts +141 -0
  130. package/dist/src/infrastructure/adapters/SSHAdapter.js +428 -0
  131. package/dist/src/interfaces.d.ts +501 -0
  132. package/dist/src/interfaces.js +25 -0
  133. package/dist/src/internal/fakes/__fake-actions__.d.ts +17 -0
  134. package/dist/src/internal/fakes/__fake-actions__.js +21 -0
  135. package/dist/src/internal/fakes/__forbidden__.d.ts +10 -0
  136. package/dist/src/internal/fakes/__forbidden__.js +18 -0
  137. package/dist/src/internal/fakes/__honeypot__.d.ts +15 -0
  138. package/dist/src/internal/fakes/__honeypot__.js +24 -0
  139. package/dist/src/octane/OctaneReporter.d.ts +13 -0
  140. package/dist/src/octane/OctaneReporter.js +61 -0
  141. package/dist/src/playwright/CryptoActions.d.ts +20 -0
  142. package/dist/src/playwright/CryptoActions.js +75 -0
  143. package/dist/src/playwright/EnhancedWebActions.d.ts +7 -0
  144. package/dist/src/playwright/EnhancedWebActions.js +65 -0
  145. package/dist/src/playwright/WebActions.d.ts +1599 -0
  146. package/dist/src/playwright/WebActions.js +11788 -0
  147. package/dist/src/playwright/actions/ActionTimeline.d.ts +36 -0
  148. package/dist/src/playwright/actions/ActionTimeline.js +101 -0
  149. package/dist/src/playwright/actions/RecoveryQueue.d.ts +82 -0
  150. package/dist/src/playwright/actions/RecoveryQueue.js +130 -0
  151. package/dist/src/playwright/actions/SelectorCache.d.ts +53 -0
  152. package/dist/src/playwright/actions/SelectorCache.js +96 -0
  153. package/dist/src/playwright/actions/index.d.ts +13 -0
  154. package/dist/src/playwright/actions/index.js +14 -0
  155. package/dist/src/playwright/actions/types.d.ts +147 -0
  156. package/dist/src/playwright/actions/types.js +5 -0
  157. package/dist/src/playwright/fixtures.d.ts +112 -0
  158. package/dist/src/playwright/fixtures.js +718 -0
  159. package/dist/src/playwright/network-logs-reporter.d.ts +7 -0
  160. package/dist/src/playwright/network-logs-reporter.js +66 -0
  161. package/dist/src/playwright/registerRecoveryWrappers.d.ts +1 -0
  162. package/dist/src/playwright/registerRecoveryWrappers.js +54 -0
  163. package/dist/src/security/BuildSecurity.d.ts +12 -0
  164. package/dist/src/security/BuildSecurity.js +138 -0
  165. package/dist/src/security/EulaProtection.d.ts +70 -0
  166. package/dist/src/security/EulaProtection.js +155 -0
  167. package/dist/src/security/HoneypotManager.d.ts +46 -0
  168. package/dist/src/security/HoneypotManager.js +234 -0
  169. package/dist/src/security/KeysManager.d.ts +36 -0
  170. package/dist/src/security/KeysManager.js +158 -0
  171. package/dist/src/security/ProofOfWorkIntegration.d.ts +64 -0
  172. package/dist/src/security/ProofOfWorkIntegration.js +206 -0
  173. package/dist/src/security/SecurityValidation.d.ts +21 -0
  174. package/dist/src/security/SecurityValidation.js +163 -0
  175. package/dist/src/security/SourceMapProtection.d.ts +55 -0
  176. package/dist/src/security/SourceMapProtection.js +220 -0
  177. package/dist/src/security/protector.d.ts +1 -0
  178. package/dist/src/security/protector.js +97 -0
  179. package/dist/src/ssh/SSHActions.d.ts +262 -0
  180. package/dist/src/ssh/SSHActions.js +790 -0
  181. package/dist/src/ssh/SSHClient.d.ts +99 -0
  182. package/dist/src/ssh/SSHClient.js +409 -0
  183. package/dist/src/statements/BaseStatement.d.ts +38 -0
  184. package/dist/src/statements/BaseStatement.js +78 -0
  185. package/dist/src/testContext/AuthStateManager.d.ts +93 -0
  186. package/dist/src/testContext/AuthStateManager.js +256 -0
  187. package/dist/src/testContext/CoverageManager.d.ts +198 -0
  188. package/dist/src/testContext/CoverageManager.js +917 -0
  189. package/dist/src/testContext/TestAnnotations.d.ts +476 -0
  190. package/dist/src/testContext/TestAnnotations.js +2647 -0
  191. package/dist/src/testContext/TestContext.d.ts +138 -0
  192. package/dist/src/testContext/TestContext.js +369 -0
  193. package/dist/src/testContext/UnifiedHtmlGenerator.d.ts +7 -0
  194. package/dist/src/testContext/UnifiedHtmlGenerator.js +264 -0
  195. package/dist/src/testContext/UnifiedReportManager.d.ts +211 -0
  196. package/dist/src/testContext/UnifiedReportManager.js +1206 -0
  197. package/dist/src/testhub/DynamicConfigManager.d.ts +121 -0
  198. package/dist/src/testhub/DynamicConfigManager.js +320 -0
  199. package/dist/src/testhub/SystemsManager.d.ts +119 -0
  200. package/dist/src/testhub/SystemsManager.js +365 -0
  201. package/dist/src/testhub/TestHubClient.d.ts +335 -0
  202. package/dist/src/testhub/TestHubClient.js +1215 -0
  203. package/dist/src/testhub/TestHubReporter.d.ts +62 -0
  204. package/dist/src/testhub/TestHubReporter.js +576 -0
  205. package/dist/src/testhub/TestHubVars.d.ts +116 -0
  206. package/dist/src/testhub/TestHubVars.js +273 -0
  207. package/dist/src/utils/ActionInterceptor.d.ts +59 -0
  208. package/dist/src/utils/ActionInterceptor.js +741 -0
  209. package/dist/src/utils/ArtifactsCompressor.d.ts +43 -0
  210. package/dist/src/utils/ArtifactsCompressor.js +181 -0
  211. package/dist/src/utils/AutoLogsFinal.d.ts +47 -0
  212. package/dist/src/utils/AutoLogsFinal.js +148 -0
  213. package/dist/src/utils/CodeGenSession.d.ts +114 -0
  214. package/dist/src/utils/CodeGenSession.js +264 -0
  215. package/dist/src/utils/ConfigLogger.d.ts +133 -0
  216. package/dist/src/utils/ConfigLogger.js +611 -0
  217. package/dist/src/utils/CustomReporter.d.ts +22 -0
  218. package/dist/src/utils/CustomReporter.js +352 -0
  219. package/dist/src/utils/DataStore.d.ts +171 -0
  220. package/dist/src/utils/DataStore.js +484 -0
  221. package/dist/src/utils/DatabaseInterceptor.d.ts +19 -0
  222. package/dist/src/utils/DatabaseInterceptor.js +295 -0
  223. package/dist/src/utils/DateHelper.d.ts +16 -0
  224. package/dist/src/utils/DateHelper.js +120 -0
  225. package/dist/src/utils/DateValidator.d.ts +4 -0
  226. package/dist/src/utils/DateValidator.js +51 -0
  227. package/dist/src/utils/DocumentGenerator.d.ts +35 -0
  228. package/dist/src/utils/DocumentGenerator.js +129 -0
  229. package/dist/src/utils/EvidenceCapture.d.ts +90 -0
  230. package/dist/src/utils/EvidenceCapture.js +600 -0
  231. package/dist/src/utils/EvidenceReportGenerator.d.ts +70 -0
  232. package/dist/src/utils/EvidenceReportGenerator.js +799 -0
  233. package/dist/src/utils/FrameManagementUtil.d.ts +42 -0
  234. package/dist/src/utils/FrameManagementUtil.js +75 -0
  235. package/dist/src/utils/GlobalStatementsInterceptor.d.ts +1 -0
  236. package/dist/src/utils/GlobalStatementsInterceptor.js +1 -0
  237. package/dist/src/utils/HTMLTemplate.d.ts +1 -0
  238. package/dist/src/utils/HTMLTemplate.js +1034 -0
  239. package/dist/src/utils/InterceptacaoMagica.d.ts +23 -0
  240. package/dist/src/utils/InterceptacaoMagica.js +365 -0
  241. package/dist/src/utils/LogSanitizer.d.ts +35 -0
  242. package/dist/src/utils/LogSanitizer.js +110 -0
  243. package/dist/src/utils/Logger.d.ts +65 -0
  244. package/dist/src/utils/Logger.js +284 -0
  245. package/dist/src/utils/McpLocalClient.d.ts +141 -0
  246. package/dist/src/utils/McpLocalClient.js +871 -0
  247. package/dist/src/utils/PDFEvidenceGenerator.d.ts +20 -0
  248. package/dist/src/utils/PDFEvidenceGenerator.js +156 -0
  249. package/dist/src/utils/SpecFileAnalyzer.d.ts +35 -0
  250. package/dist/src/utils/SpecFileAnalyzer.js +209 -0
  251. package/dist/src/utils/StatementInterceptor.d.ts +18 -0
  252. package/dist/src/utils/StatementInterceptor.js +87 -0
  253. package/dist/src/utils/StatementLogger.d.ts +33 -0
  254. package/dist/src/utils/StatementLogger.js +113 -0
  255. package/dist/src/utils/StatementsInterceptor.d.ts +1 -0
  256. package/dist/src/utils/StatementsInterceptor.js +1 -0
  257. package/dist/src/utils/TeamsFlushHook.d.ts +17 -0
  258. package/dist/src/utils/TeamsFlushHook.js +168 -0
  259. package/dist/src/utils/TerminalLogCapture.d.ts +158 -0
  260. package/dist/src/utils/TerminalLogCapture.js +531 -0
  261. package/dist/src/utils/TestMethodLogger.d.ts +70 -0
  262. package/dist/src/utils/TestMethodLogger.js +95 -0
  263. package/dist/src/utils/UnifiedTeardown.d.ts +4 -0
  264. package/dist/src/utils/UnifiedTeardown.js +400 -0
  265. package/dist/src/utils/XPathCatalog.d.ts +152 -0
  266. package/dist/src/utils/XPathCatalog.js +350 -0
  267. package/dist/src/utils/generators.d.ts +90 -0
  268. package/dist/src/utils/generators.js +167 -0
  269. package/dist/src/utils/testRecovery/ResilientPlaywright.d.ts +152 -0
  270. package/dist/src/utils/testRecovery/ResilientPlaywright.js +715 -0
  271. package/dist/src/utils/testRecovery/TestRecoveryClient.d.ts +801 -0
  272. package/dist/src/utils/testRecovery/TestRecoveryClient.js +1415 -0
  273. package/dist/src/utils/testRecovery/autoFixCode.d.ts +65 -0
  274. package/dist/src/utils/testRecovery/autoFixCode.js +32 -0
  275. package/dist/vitest.config.d.ts +2 -0
  276. package/dist/vitest.config.js +59 -0
  277. package/dist/wdio.conf.d.ts +1 -0
  278. package/dist/wdio.conf.js +420 -0
  279. package/package.json +137 -0
  280. package/protect-loader.mjs +643 -0
  281. package/scripts/consumer-postinstall.ts +975 -0
  282. package/scripts/generate-index.ts +343 -0
  283. package/scripts/init-api.ts +613 -0
  284. package/scripts/init-banco.ts +437 -0
  285. package/scripts/init-frontend.ts +727 -0
  286. package/scripts/init-mobile.ts +558 -0
  287. package/scripts/init-scenarios.ts +925 -0
  288. package/scripts/init-ssh.ts +734 -0
  289. package/scripts/package-versions.ts +978 -0
  290. package/scripts/postinstall.ts +605 -0
  291. package/scripts/smart-override.ts +1675 -0
  292. package/scripts/sync-configs.ts +302 -0
  293. package/scripts/ultracite-setup.ts +370 -0
  294. package/src/types/globals.d.ts +48 -0
  295. package/tsconfig.json +29 -0
  296. package/types/autocore-sync-signal.d.ts +10 -0
@@ -0,0 +1,347 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import yaml from 'js-yaml';
6
+ import { generateBiomeConfigString, generatePackageJson, generateTsConfigForProject, generateVitestConfigString, getLatestVersions, } from './package-versions.js';
7
+ import { setupUltracite } from './ultracite-setup.js';
8
+ const root = process.cwd();
9
+ const catalogPath = path.join(root, 'catalog-info.yaml');
10
+ if (!fs.existsSync(catalogPath)) {
11
+ console.error('❌ Arquivo catalog-info.yaml não encontrado.');
12
+ process.exit(1);
13
+ }
14
+ const catalog = yaml.load(fs.readFileSync(catalogPath, 'utf-8'));
15
+ const projectName = catalog?.metadata?.name || 'meu-projeto';
16
+ const projectNameUnderscore = projectName.replace(/-/g, '_');
17
+ const write = (filePath, content) => {
18
+ const fullPath = path.join(root, filePath);
19
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
20
+ fs.writeFileSync(fullPath, content);
21
+ };
22
+ async function main() {
23
+ console.log('🚀 Inicializando projeto Banco Oracle com versões atualizadas...');
24
+ console.log(`📦 Projeto: ${projectName}`);
25
+ console.log('');
26
+ // ✅ Buscar versões mais recentes
27
+ const versions = await getLatestVersions();
28
+ // ✅ Gerar package.json com versões atualizadas
29
+ const packageJsonContent = generatePackageJson(projectName, 'banco', versions);
30
+ // ✅ Gerar tsconfig.json baseado no AutoCore
31
+ const tsconfigContent = generateTsConfigForProject('banco');
32
+ // ✅ Gerar vitest.config.ts baseado no AutoCore
33
+ const vitestConfigContent = generateVitestConfigString('banco');
34
+ // ✅ Gerar biome.json sincronizado com AutoCore
35
+ const biomeConfigContent = generateBiomeConfigString();
36
+ console.log('📝 Criando arquivos do projeto...');
37
+ // package.json com versões dinâmicas
38
+ write('package.json', JSON.stringify(packageJsonContent, null, 2));
39
+ // ✅ tsconfig.json sempre sincronizado com o AutoCore
40
+ write('tsconfig.json', JSON.stringify(tsconfigContent, null, 2));
41
+ // ✅ biome.json sincronizado automaticamente com o AutoCore
42
+ write('biome.json', biomeConfigContent);
43
+ // playwright.config.ts
44
+ write('playwright.config.ts', `import { defineConfig } from '@playwright/test'
45
+ export default defineConfig({
46
+ globalSetup: '@silasfmartins/testhub/setup',
47
+ reporter: [
48
+ ['list'],
49
+ ['html', { open: 'never' }],
50
+ ['@silasfmartins/testhub/reporter'],
51
+ ],
52
+ testDir: './tests',
53
+ testMatch: ['**/*.spec.ts', '**/*.test.ts'],
54
+ // Timeouts adequados para testes de banco
55
+ timeout: 120_000,
56
+ expect: {
57
+ timeout: 60_000,
58
+ },
59
+ use: {
60
+ trace: 'on',
61
+ },
62
+ })`);
63
+ // .npmrc
64
+ write('.npmrc', `registry=https://pkgs.dev.azure.com/telefonica-vivo-brasil/_packaging/DevOps/npm/registry/`);
65
+ // .gitignore
66
+ write('.gitignore', `# Playwright
67
+ node_modules/
68
+ /test-results/
69
+ /playwright-report/
70
+ /blob-report/
71
+ /playwright/.cache/
72
+
73
+ # Tests e logs
74
+ /tests
75
+ /logs
76
+
77
+ .vscode
78
+ .vscode/
79
+ docs
80
+ docs/
81
+
82
+ # Environment files
83
+ .env
84
+ .env.preprod
85
+ .env.esteira1
86
+ .env.esteira2
87
+ .env.prodlike
88
+
89
+ # AutoCore específicos
90
+ .test-data-store.json
91
+ .env.lock
92
+ .configlogger.lock
93
+ .rbqa
94
+ .rbqa/
95
+
96
+ # VS Code
97
+ .vscode/settings.json
98
+
99
+ # Biome
100
+ .biome.log
101
+
102
+ # Coverage
103
+ coverage/
104
+ *.lcov`);
105
+ // Arquivo de environment padrão
106
+ write('.env', `# Arquivo que seleciona o ambiente a ser utilizado
107
+ ENV=PREPROD`);
108
+ // Arquivo de environment padrão
109
+ write('.env.preprod', `# Configurações de banco de dados para preprod
110
+ DB_HOST=
111
+ DB_PORT=1521
112
+ DB_SERVICE_NAME=
113
+ DB_USER=
114
+ DB_PASSWORD=
115
+ # Adicione suas variáveis de ambiente aqui`);
116
+ // Arquivo de environment esteira1
117
+ write('.env.esteira1', `# Configurações de banco de dados para esteira1
118
+ DB_HOST=
119
+ DB_PORT=1521
120
+ DB_SERVICE_NAME=
121
+ DB_USER=
122
+ DB_PASSWORD=
123
+ # Adicione suas variáveis de ambiente aqui`);
124
+ // Arquivo de environment esteira2
125
+ write('.env.esteira2', `# Configurações de banco de dados para esteira2
126
+ DB_HOST=
127
+ DB_PORT=1521
128
+ DB_SERVICE_NAME=
129
+ DB_USER=
130
+ DB_PASSWORD=
131
+ # Adicione suas variáveis de ambiente aqui`);
132
+ // Arquivo de environment prodlike
133
+ write('.env.prodlike', `# Configurações de banco de dados para prodlike
134
+ DB_HOST=
135
+ DB_PORT=1521
136
+ DB_SERVICE_NAME=
137
+ DB_USER=
138
+ DB_PASSWORD=
139
+ # Adicione suas variáveis de ambiente aqui`);
140
+ // ✅ Estrutura de testes
141
+ console.log('📝 Criando estrutura de testes e models...');
142
+ // src/models/ModelDBA.ts
143
+ write('src/models/ModelDBA.ts', `export class ModelDBA {
144
+ getCep(cidade: string): string {
145
+ return /*sql*/ \`
146
+ SELECT
147
+ ZIPCODE, X_NUMBER, X_BB_MAX_SPEED, X_OPTL_TR_NAME
148
+ FROM
149
+ siebel.s_addr_per
150
+ WHERE
151
+ x_network_owner = 'VIVO2'
152
+ AND x_access_technology = 'GPON'
153
+ AND city = '\${cidade}'
154
+ AND comments LIKE '%Endereço com cobertura%'
155
+ ORDER BY
156
+ last_upd DESC
157
+ \`;
158
+ }
159
+
160
+ getCep2(cidade: string, tecnology: string): string {
161
+ return /*sql*/ \`
162
+ SELECT
163
+ ZIPCODE, X_NUMBER, X_BB_MAX_SPEED, X_OPTL_TR_NAME
164
+ FROM
165
+ siebel.s_addr_per
166
+ WHERE
167
+ x_network_owner = 'VIVO2'
168
+ AND x_access_technology = '\${tecnology}'
169
+ AND city = '\${cidade}'
170
+ AND comments LIKE '%Endereço com cobertura%'
171
+ ORDER BY
172
+ last_upd DESC
173
+ \`;
174
+ }
175
+ }
176
+ `);
177
+ // src/statements/StatementsConsultaCep.ts
178
+ write('src/statements/StatementsConsultaCep.ts', `import { BancoActions, DataStore } from "@silasfmartins/testhub";
179
+ import { ModelDBA } from "../models/ModelDBA.js";
180
+
181
+ export class StatementsConsultaCep {
182
+ /**
183
+ * Consulta CEP baseado na cidade fornecida
184
+ * @param cidade - Nome da cidade para a consulta
185
+ * @returns Resultados da consulta de CEP
186
+ */
187
+ async validateCep(cidade: string) {
188
+ const MAX_RESULTS = 5;
189
+
190
+ // Executa e loga a ação
191
+ const results = await BancoActions.select(new ModelDBA().getCep(cidade));
192
+
193
+ // Limita e armazena resultados
194
+ const limitedResults = results.slice(0, MAX_RESULTS);
195
+ for (const [index, row] of limitedResults.entries()) {
196
+ DataStore.set(\`CEP\${index + 1}\`, row.ZIPCODE);
197
+ DataStore.set(\`NUMERO\${index + 1}\`, row.X_NUMBER);
198
+ }
199
+
200
+ // Validação e log
201
+ const houveResultados = results.length > 0;
202
+ if (!houveResultados) {
203
+ const sql = "SELECT 1 FROM DUAL WHERE 1=0";
204
+ await BancoActions.execute("Validação de retorno de dados", sql);
205
+ }
206
+
207
+ return limitedResults;
208
+ }
209
+ }
210
+ `);
211
+ // tests/consulta-cep.spec.ts
212
+ write('tests/consulta-cep.spec.ts', `import { type TestInfo, test, TestAnnotations } from "@silasfmartins/testhub";
213
+ import { StatementsConsultaCep } from "../src/statements/StatementsConsultaCep.js";
214
+
215
+ test.describe("Testes de Banco de Dados - CEP Curitiba", () => {
216
+ TestAnnotations.stopOnFailure(); // opcional: para o runner ao falhar um CT
217
+
218
+ test("CT001 - Consulta de CEPs com cobertura GPON em Curitiba", async ({}, testInfo: TestInfo) => {
219
+ TestAnnotations.Banco.testInfo = testInfo;
220
+ await TestAnnotations.setSystem("MEU_SISTEMA");
221
+ await new StatementsConsultaCep().validateCep("CURITIBA");
222
+ });
223
+ });
224
+ `);
225
+ //env.ts
226
+ write('src/env.ts', `import { config } from 'dotenv'
227
+
228
+ config()
229
+
230
+ const rawEnv = {
231
+ ENV: process.env.ENV,
232
+ }
233
+ export const env = rawEnv
234
+ `);
235
+ // SonarQube configuration
236
+ write('.azuredevops/sonar-project.properties', `################### NÃO ALTERAR!!! ###################
237
+ # Informações gerais sobre o projeto. #
238
+ # Todas as variáveis de ambiente são fornecidas pela #
239
+ # automação, não alterar! #
240
+ ######################################################
241
+
242
+ sonar.projectDescription=Projeto de API com AutoCore
243
+ sonar.analysis.orgName=\${env.AZ_ORG_NAME}
244
+ sonar.analysis.buildAuthor=\${env.AZ_BUILD_AUTHOR}
245
+ sonar.scm.exclusions.disabled=false
246
+ sonar.scm.forceReloadAll=true
247
+ sonar.log.level=DEBUG
248
+ sonar.verbose=true
249
+ sonar.sourceEncoding=UTF-8
250
+
251
+ # Diretórios e arquivos relevantes para Node.js/TypeScript
252
+ sonar.sources=src
253
+ sonar.inclusions=**/*.ts
254
+ sonar.test.inclusions=**/*.spec.ts,**/*.test.ts
255
+ sonar.typescript.lcov.reportPaths=coverage/lcov.info
256
+ sonar.javascript.lcov.reportPaths=coverage/lcov.info
257
+
258
+ # Exclusões de cobertura e análise
259
+ sonar.exclusions=node_modules/**,dist/**,coverage/**,**/*.config.js,**/*.config.ts
260
+ sonar.coverage.exclusions=**/*.d.ts,node_modules/**,dist/**,coverage/**,**/*.config.js,**/*.config.ts,**/*.spec.ts,**/*.test.ts
261
+ sonar.test.exclusions=node_modules/**,dist/**,coverage/**
262
+
263
+ # Configurações específicas para projetos API
264
+ sonar.javascript.environments=node
265
+ sonar.typescript.node=true
266
+ `);
267
+ // Pipeline Azure DevOps
268
+ write('.azuredevops/azure-pipeline.yml', `trigger:
269
+ batch: true
270
+ branches:
271
+ include:
272
+ - 'master'
273
+ paths:
274
+ include:
275
+ - '*'
276
+ exclude:
277
+ - .azuredevops/*
278
+ - docs/*
279
+ - catalog-info.yaml
280
+ - mkdocs.yml
281
+ - scripts.py
282
+ - catalog/*
283
+
284
+ resources:
285
+ repositories:
286
+ - repository: CodePlay
287
+ name: DevOps/Vivo.CodePlay.Pipelines
288
+ type: git
289
+ ref: refs/heads/test-playwright
290
+ endpoint: CodePlay
291
+
292
+ pool:
293
+ name: GeneralPurposeLinuxAgentsCI
294
+
295
+ extends:
296
+ template: tech_products/qa/build/pipeline_node_npm.yml@CodePlay
297
+ parameters:
298
+ jobName: 'build_${projectNameUnderscore}_pkg'
299
+ commitSHA: '$(Build.SourceVersion)'
300
+ registryServiceConnection: 'ACR-DEVOPS'
301
+ govAppAcronym: ''
302
+ skipScan: false # Alterado para false para executar Fortify e SonarQube
303
+ `);
304
+ // ✅ Configurar Ultracite automaticamente
305
+ console.log('🤖 Configurando ambiente de desenvolvimento...');
306
+ await setupUltracite(root);
307
+ // ✅ Garantir sincronização final do biome.json
308
+ console.log('🔧 Sincronizando configuração do Biome...');
309
+ const finalBiomeConfig = generateBiomeConfigString();
310
+ write('biome.json', finalBiomeConfig);
311
+ // Remover o lock após tudo finalizar
312
+ const installLockPath = path.join(root, '.install.lock');
313
+ if (fs.existsSync(installLockPath)) {
314
+ fs.unlinkSync(installLockPath);
315
+ console.log('🗑️ Lock de instalação removido');
316
+ }
317
+ console.log('');
318
+ console.log('🎉 Projeto Banco de Dados gerado com sucesso!');
319
+ console.log('');
320
+ console.log('📋 Próximos passos:');
321
+ console.log(' 1. Configure suas variáveis de ambiente de banco nos arquivos .env.*');
322
+ console.log(' 2. Adicione as credenciais do Oracle no .env.preprod');
323
+ console.log(' 3. Execute: npm run test:preprod');
324
+ console.log('');
325
+ console.log('🛠️ Comandos úteis:');
326
+ console.log(' npm run test:preprod - Executar testes em preprod');
327
+ console.log(' npm run test:esteira1 - Executar testes em esteira1');
328
+ console.log(' npm run test:esteira2 - Executar testes em esteira2');
329
+ console.log(' npm run test:prodlike - Executar testes em prodlike');
330
+ console.log(' npm run build - Compilar projeto');
331
+ console.log(' npm run update - Atualizar índices');
332
+ console.log(' npx biome check - Verificar código com Biome');
333
+ console.log(' npx biome format - Formatar código com Biome');
334
+ console.log('');
335
+ console.log('✅ Configurações sincronizadas com AutoCore:');
336
+ console.log(' 📝 tsconfig.json - Compilação TypeScript');
337
+ console.log(' 🎨 biome.json - Linting e formatação (SINCRONIZADO)');
338
+ console.log(' 📦 Dependências - Versões mais recentes');
339
+ console.log(' 🗄️ Oracle Database - Suporte completo');
340
+ console.log('');
341
+ console.log('🚀 Projeto pronto para desenvolvimento de testes de banco!');
342
+ }
343
+ // Executar função principal
344
+ main().catch((error) => {
345
+ console.error('❌ Erro durante inicialização:', error);
346
+ process.exit(1);
347
+ });
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};