gt 0.10.0 → 2.7.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 (531) hide show
  1. package/CHANGELOG.md +1275 -0
  2. package/LICENSE.md +105 -0
  3. package/README.md +26 -198
  4. package/dist/api/collectUserEditDiffs.d.ts +9 -0
  5. package/dist/api/collectUserEditDiffs.js +159 -0
  6. package/dist/api/downloadFileBatch.d.ts +23 -0
  7. package/dist/api/downloadFileBatch.js +190 -0
  8. package/dist/api/saveLocalEdits.d.ts +6 -0
  9. package/dist/api/saveLocalEdits.js +38 -0
  10. package/dist/bin/bin-entry.d.ts +1 -0
  11. package/dist/bin/bin-entry.js +9 -0
  12. package/dist/bin/bin-main.d.ts +2 -0
  13. package/dist/bin/bin-main.js +67 -0
  14. package/dist/cli/base.d.ts +59 -0
  15. package/dist/cli/base.js +529 -0
  16. package/dist/cli/commands/download.d.ts +8 -0
  17. package/dist/cli/commands/download.js +51 -0
  18. package/dist/cli/commands/enqueue.d.ts +9 -0
  19. package/dist/cli/commands/enqueue.js +27 -0
  20. package/dist/cli/commands/setupProject.d.ts +7 -0
  21. package/dist/cli/commands/setupProject.js +37 -0
  22. package/dist/cli/commands/stage.d.ts +9 -0
  23. package/dist/cli/commands/stage.js +59 -0
  24. package/dist/cli/commands/translate.d.ts +7 -0
  25. package/dist/cli/commands/translate.js +70 -0
  26. package/dist/cli/commands/upload.d.ts +13 -0
  27. package/dist/cli/commands/upload.js +142 -0
  28. package/dist/cli/commands/utils/validation.d.ts +13 -0
  29. package/dist/cli/commands/utils/validation.js +38 -0
  30. package/dist/cli/flags.d.ts +15 -0
  31. package/dist/cli/flags.js +70 -0
  32. package/dist/cli/inline.d.ts +17 -0
  33. package/dist/cli/inline.js +135 -0
  34. package/dist/cli/next.d.ts +10 -0
  35. package/dist/cli/next.js +12 -0
  36. package/dist/cli/node.d.ts +10 -0
  37. package/dist/cli/node.js +9 -0
  38. package/dist/cli/react.d.ts +12 -0
  39. package/dist/cli/react.js +72 -0
  40. package/dist/config/generateSettings.d.ts +9 -0
  41. package/dist/config/generateSettings.js +214 -0
  42. package/dist/config/optionPresets.d.ts +3 -0
  43. package/dist/config/optionPresets.js +65 -0
  44. package/dist/config/resolveConfig.d.ts +4 -0
  45. package/dist/config/resolveConfig.js +33 -0
  46. package/dist/config/utils.d.ts +2 -0
  47. package/dist/config/utils.js +4 -0
  48. package/dist/config/validateSettings.d.ts +3 -0
  49. package/dist/config/validateSettings.js +32 -0
  50. package/dist/console/colors.d.ts +6 -0
  51. package/dist/console/colors.js +19 -0
  52. package/dist/console/displayTranslateSummary.d.ts +1 -0
  53. package/dist/console/displayTranslateSummary.js +42 -0
  54. package/dist/console/formatting.d.ts +1 -0
  55. package/dist/console/formatting.js +7 -0
  56. package/dist/console/index.d.ts +34 -0
  57. package/dist/console/index.js +46 -0
  58. package/dist/console/logger.d.ts +35 -0
  59. package/dist/console/logger.js +250 -0
  60. package/dist/console/logging.d.ts +52 -0
  61. package/dist/console/logging.js +175 -0
  62. package/dist/formats/files/aggregateFiles.d.ts +4 -0
  63. package/dist/formats/files/aggregateFiles.js +156 -0
  64. package/dist/formats/files/collectFiles.d.ts +6 -0
  65. package/dist/formats/files/collectFiles.js +49 -0
  66. package/dist/formats/files/convertToFileTranslationData.d.ts +15 -0
  67. package/dist/formats/files/convertToFileTranslationData.js +21 -0
  68. package/dist/formats/files/fileMapping.d.ts +11 -0
  69. package/dist/formats/files/fileMapping.js +115 -0
  70. package/dist/formats/files/preprocess/mdx.d.ts +6 -0
  71. package/dist/formats/files/preprocess/mdx.js +14 -0
  72. package/dist/formats/files/preprocess/mintlify.d.ts +5 -0
  73. package/dist/formats/files/preprocess/mintlify.js +15 -0
  74. package/dist/formats/files/preprocessContent.d.ts +8 -0
  75. package/dist/formats/files/preprocessContent.js +23 -0
  76. package/dist/formats/files/save.d.ts +5 -0
  77. package/dist/formats/files/save.js +17 -0
  78. package/dist/formats/files/supportedFiles.d.ts +11 -0
  79. package/dist/formats/files/supportedFiles.js +20 -0
  80. package/dist/formats/json/extractJson.d.ts +15 -0
  81. package/dist/formats/json/extractJson.js +101 -0
  82. package/dist/formats/json/flattenJson.d.ts +14 -0
  83. package/dist/formats/json/flattenJson.js +64 -0
  84. package/dist/formats/json/mergeJson.d.ts +13 -0
  85. package/dist/formats/json/mergeJson.js +367 -0
  86. package/dist/formats/json/parseJson.d.ts +2 -0
  87. package/dist/formats/json/parseJson.js +109 -0
  88. package/dist/formats/json/utils.d.ts +47 -0
  89. package/dist/formats/json/utils.js +150 -0
  90. package/dist/formats/utils.d.ts +2 -0
  91. package/dist/formats/utils.js +24 -0
  92. package/dist/formats/yaml/mergeYaml.d.ts +5 -0
  93. package/dist/formats/yaml/mergeYaml.js +61 -0
  94. package/dist/formats/yaml/parseYaml.d.ts +5 -0
  95. package/dist/formats/yaml/parseYaml.js +24 -0
  96. package/dist/formats/yaml/utils.d.ts +2 -0
  97. package/dist/formats/yaml/utils.js +23 -0
  98. package/dist/fs/clearLocaleDirs.d.ts +8 -0
  99. package/dist/fs/clearLocaleDirs.js +126 -0
  100. package/dist/fs/config/downloadedVersions.d.ts +21 -0
  101. package/dist/fs/config/downloadedVersions.js +50 -0
  102. package/dist/fs/config/loadConfig.d.ts +1 -0
  103. package/dist/fs/config/loadConfig.js +9 -0
  104. package/dist/fs/config/parseFilesConfig.d.ts +27 -0
  105. package/dist/fs/config/parseFilesConfig.js +150 -0
  106. package/dist/fs/config/setupConfig.d.ts +17 -0
  107. package/dist/fs/config/setupConfig.js +50 -0
  108. package/dist/fs/config/updateConfig.d.ts +21 -0
  109. package/dist/fs/config/updateConfig.js +57 -0
  110. package/dist/fs/config/updateVersions.d.ts +11 -0
  111. package/dist/fs/config/updateVersions.js +30 -0
  112. package/dist/fs/copyFile.d.ts +7 -0
  113. package/dist/fs/copyFile.js +39 -0
  114. package/dist/fs/createLoadTranslationsFile.d.ts +1 -0
  115. package/dist/fs/createLoadTranslationsFile.js +49 -0
  116. package/dist/fs/determineFramework.d.ts +5 -0
  117. package/dist/fs/determineFramework.js +53 -0
  118. package/dist/fs/findFilepath.d.ts +36 -0
  119. package/dist/fs/findFilepath.js +90 -0
  120. package/dist/fs/index.d.ts +1 -0
  121. package/dist/fs/index.js +1 -0
  122. package/dist/fs/loadJSON.d.ts +6 -0
  123. package/dist/fs/loadJSON.js +17 -0
  124. package/dist/fs/matchFiles.d.ts +1 -0
  125. package/dist/fs/matchFiles.js +8 -0
  126. package/dist/fs/saveJSON.d.ts +1 -0
  127. package/dist/fs/saveJSON.js +7 -0
  128. package/dist/fs/utils.d.ts +1 -0
  129. package/dist/fs/utils.js +16 -0
  130. package/dist/functions.d.ts +7 -0
  131. package/dist/functions.js +6 -0
  132. package/dist/generated/version.d.ts +1 -0
  133. package/dist/generated/version.js +2 -0
  134. package/dist/git/branches.d.ts +7 -0
  135. package/dist/git/branches.js +88 -0
  136. package/dist/hooks/postProcess.d.ts +4 -0
  137. package/dist/hooks/postProcess.js +110 -0
  138. package/dist/index.d.ts +4 -0
  139. package/dist/index.js +27 -0
  140. package/dist/locadex/setupFlow.d.ts +2 -0
  141. package/dist/locadex/setupFlow.js +9 -0
  142. package/dist/main.d.ts +2 -0
  143. package/dist/main.js +10 -0
  144. package/dist/next/config/parseNextConfig.d.ts +10 -0
  145. package/dist/next/config/parseNextConfig.js +53 -0
  146. package/dist/next/jsx/utils.d.ts +7 -0
  147. package/dist/next/jsx/utils.js +42 -0
  148. package/dist/next/parse/handleInitGT.d.ts +7 -0
  149. package/dist/next/parse/handleInitGT.js +157 -0
  150. package/dist/next/parse/wrapContent.d.ts +12 -0
  151. package/dist/next/parse/wrapContent.js +164 -0
  152. package/dist/react/config/createESBuildConfig.d.ts +2 -0
  153. package/dist/react/config/createESBuildConfig.js +119 -0
  154. package/dist/react/jsx/evaluateJsx.d.ts +24 -0
  155. package/dist/react/jsx/evaluateJsx.js +123 -0
  156. package/dist/react/jsx/utils/buildImportMap.d.ts +9 -0
  157. package/dist/react/jsx/utils/buildImportMap.js +30 -0
  158. package/dist/react/jsx/utils/constants.d.ts +15 -0
  159. package/dist/react/jsx/utils/constants.js +49 -0
  160. package/dist/react/jsx/utils/getCalleeNameFromExpression.d.ts +9 -0
  161. package/dist/react/jsx/utils/getCalleeNameFromExpression.js +32 -0
  162. package/dist/react/jsx/utils/getPathsAndAliases.d.ts +21 -0
  163. package/dist/react/jsx/utils/getPathsAndAliases.js +91 -0
  164. package/dist/react/jsx/utils/isNumberLiteral.d.ts +7 -0
  165. package/dist/react/jsx/utils/isNumberLiteral.js +13 -0
  166. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.d.ts +9 -0
  167. package/dist/react/jsx/utils/jsxParsing/addGTIdentifierToSyntaxTree.js +138 -0
  168. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.d.ts +6 -0
  169. package/dist/react/jsx/utils/jsxParsing/handleChildrenWhitespace.js +197 -0
  170. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.d.ts +13 -0
  171. package/dist/react/jsx/utils/jsxParsing/multiplication/findMultiplicationNode.js +42 -0
  172. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.d.ts +5 -0
  173. package/dist/react/jsx/utils/jsxParsing/multiplication/multiplyJsxTree.js +69 -0
  174. package/dist/react/jsx/utils/jsxParsing/parseJsx.d.ts +33 -0
  175. package/dist/react/jsx/utils/jsxParsing/parseJsx.js +918 -0
  176. package/dist/react/jsx/utils/jsxParsing/parseTProps.d.ts +8 -0
  177. package/dist/react/jsx/utils/jsxParsing/parseTProps.js +65 -0
  178. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.d.ts +2 -0
  179. package/dist/react/jsx/utils/jsxParsing/removeNullChildrenFields.js +61 -0
  180. package/dist/react/jsx/utils/jsxParsing/types.d.ts +48 -0
  181. package/dist/react/jsx/utils/jsxParsing/types.js +34 -0
  182. package/dist/react/jsx/utils/mapAttributeName.d.ts +11 -0
  183. package/dist/react/jsx/utils/mapAttributeName.js +12 -0
  184. package/dist/react/jsx/utils/parseAst.d.ts +31 -0
  185. package/dist/react/jsx/utils/parseAst.js +278 -0
  186. package/dist/react/jsx/utils/parseDeclareStatic.d.ts +15 -0
  187. package/dist/react/jsx/utils/parseDeclareStatic.js +540 -0
  188. package/dist/react/jsx/utils/parseString.d.ts +25 -0
  189. package/dist/react/jsx/utils/parseString.js +540 -0
  190. package/dist/react/jsx/utils/parseStringFunction.d.ts +30 -0
  191. package/dist/react/jsx/utils/parseStringFunction.js +348 -0
  192. package/dist/react/jsx/utils/resolveImportPath.d.ts +11 -0
  193. package/dist/react/jsx/utils/resolveImportPath.js +111 -0
  194. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.d.ts +29 -0
  195. package/dist/react/jsx/utils/stringParsing/processTranslationCall/extractStringEntryMetadata.js +86 -0
  196. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.d.ts +14 -0
  197. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleInvalidTranslationCall.js +24 -0
  198. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.d.ts +19 -0
  199. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleLiteralTranslationCall.js +31 -0
  200. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.d.ts +22 -0
  201. package/dist/react/jsx/utils/stringParsing/processTranslationCall/handleStaticTranslationCall.js +51 -0
  202. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.d.ts +18 -0
  203. package/dist/react/jsx/utils/stringParsing/processTranslationCall/index.js +39 -0
  204. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.d.ts +24 -0
  205. package/dist/react/jsx/utils/stringParsing/processTranslationCall/routeTranslationCall.js +68 -0
  206. package/dist/react/jsx/utils/stringParsing/types.d.ts +41 -0
  207. package/dist/react/jsx/utils/stringParsing/types.js +1 -0
  208. package/dist/react/jsx/utils/types.d.ts +14 -0
  209. package/dist/react/jsx/utils/types.js +1 -0
  210. package/dist/react/jsx/utils/validateStringFunction.d.ts +7 -0
  211. package/dist/react/jsx/utils/validateStringFunction.js +31 -0
  212. package/dist/react/jsx/wrapJsx.d.ts +51 -0
  213. package/dist/react/jsx/wrapJsx.js +387 -0
  214. package/dist/react/parse/addVitePlugin/index.d.ts +22 -0
  215. package/dist/react/parse/addVitePlugin/index.js +41 -0
  216. package/dist/react/parse/addVitePlugin/installCompiler.d.ts +8 -0
  217. package/dist/react/parse/addVitePlugin/installCompiler.js +22 -0
  218. package/dist/react/parse/addVitePlugin/updateViteConfig.d.ts +19 -0
  219. package/dist/react/parse/addVitePlugin/updateViteConfig.js +120 -0
  220. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.d.ts +9 -0
  221. package/dist/react/parse/addVitePlugin/utils/addCompilerImport.js +34 -0
  222. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.d.ts +11 -0
  223. package/dist/react/parse/addVitePlugin/utils/addPluginInvocation.js +48 -0
  224. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.d.ts +15 -0
  225. package/dist/react/parse/addVitePlugin/utils/checkCompilerImport.js +113 -0
  226. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.d.ts +12 -0
  227. package/dist/react/parse/addVitePlugin/utils/checkPluginInvocation.js +32 -0
  228. package/dist/react/parse/createDictionaryUpdates.d.ts +3 -0
  229. package/dist/react/parse/createDictionaryUpdates.js +187 -0
  230. package/dist/react/parse/createInlineUpdates.d.ts +13 -0
  231. package/dist/react/parse/createInlineUpdates.js +161 -0
  232. package/dist/react/parse/wrapContent.d.ts +12 -0
  233. package/dist/react/parse/wrapContent.js +162 -0
  234. package/dist/react/utils/flattenDictionary.d.ts +20 -0
  235. package/dist/react/utils/flattenDictionary.js +75 -0
  236. package/dist/react/utils/getEntryAndMetadata.d.ts +5 -0
  237. package/dist/react/utils/getEntryAndMetadata.js +11 -0
  238. package/dist/react/utils/getVariableName.d.ts +25 -0
  239. package/dist/react/utils/getVariableName.js +37 -0
  240. package/dist/setup/agentInstructions.d.ts +24 -0
  241. package/dist/setup/agentInstructions.js +138 -0
  242. package/dist/setup/detectFramework.d.ts +31 -0
  243. package/dist/setup/detectFramework.js +106 -0
  244. package/dist/setup/frameworkUtils.d.ts +3 -0
  245. package/dist/setup/frameworkUtils.js +30 -0
  246. package/dist/setup/instructions/base.md +29 -0
  247. package/dist/setup/instructions/gt-next.md +107 -0
  248. package/dist/setup/instructions/gt-react.md +98 -0
  249. package/dist/setup/userInput.d.ts +4 -0
  250. package/dist/setup/userInput.js +32 -0
  251. package/dist/setup/wizard.d.ts +3 -0
  252. package/dist/setup/wizard.js +147 -0
  253. package/dist/state/recentDownloads.d.ts +12 -0
  254. package/dist/state/recentDownloads.js +18 -0
  255. package/dist/state/translateWarnings.d.ts +10 -0
  256. package/dist/state/translateWarnings.js +13 -0
  257. package/dist/translation/parse.d.ts +17 -0
  258. package/dist/translation/parse.js +77 -0
  259. package/dist/translation/stage.d.ts +3 -0
  260. package/dist/translation/stage.js +44 -0
  261. package/dist/translation/validate.d.ts +14 -0
  262. package/dist/translation/validate.js +100 -0
  263. package/dist/types/branch.d.ts +14 -0
  264. package/dist/types/branch.js +1 -0
  265. package/dist/types/data/json.d.ts +6 -0
  266. package/dist/types/data/json.js +1 -0
  267. package/dist/types/data.d.ts +37 -0
  268. package/dist/types/data.js +1 -0
  269. package/dist/types/files.d.ts +8 -0
  270. package/dist/types/files.js +1 -0
  271. package/dist/types/index.d.ts +243 -0
  272. package/dist/types/index.js +1 -0
  273. package/dist/types/libraries.d.ts +31 -0
  274. package/dist/types/libraries.js +72 -0
  275. package/dist/types/parsing.d.ts +3 -0
  276. package/dist/types/parsing.js +1 -0
  277. package/dist/utils/addExplicitAnchorIds.d.ts +24 -0
  278. package/dist/utils/addExplicitAnchorIds.js +416 -0
  279. package/dist/utils/constants.d.ts +5 -0
  280. package/dist/utils/constants.js +6 -0
  281. package/dist/utils/credentials.d.ts +12 -0
  282. package/dist/utils/credentials.js +120 -0
  283. package/dist/utils/flattenJsonFiles.d.ts +2 -0
  284. package/dist/utils/flattenJsonFiles.js +36 -0
  285. package/dist/utils/gitDiff.d.ts +8 -0
  286. package/dist/utils/gitDiff.js +34 -0
  287. package/dist/utils/gt.d.ts +2 -0
  288. package/dist/utils/gt.js +2 -0
  289. package/dist/utils/hash.d.ts +6 -0
  290. package/dist/utils/hash.js +11 -0
  291. package/dist/utils/headers.d.ts +1 -0
  292. package/dist/utils/headers.js +14 -0
  293. package/dist/utils/installPackage.d.ts +3 -0
  294. package/dist/utils/installPackage.js +77 -0
  295. package/dist/utils/localizeRelativeAssets.d.ts +8 -0
  296. package/dist/utils/localizeRelativeAssets.js +166 -0
  297. package/dist/utils/localizeStaticImports.d.ts +15 -0
  298. package/dist/utils/localizeStaticImports.js +397 -0
  299. package/dist/utils/localizeStaticUrls.d.ts +19 -0
  300. package/dist/utils/localizeStaticUrls.js +450 -0
  301. package/dist/utils/mintlifyTitleFallback.d.ts +6 -0
  302. package/dist/utils/mintlifyTitleFallback.js +80 -0
  303. package/dist/utils/packageInfo.d.ts +3 -0
  304. package/dist/utils/packageInfo.js +17 -0
  305. package/dist/utils/packageJson.d.ts +6 -0
  306. package/dist/utils/packageJson.js +68 -0
  307. package/dist/utils/packageManager.d.ts +28 -0
  308. package/dist/utils/packageManager.js +269 -0
  309. package/dist/utils/parse/needsCJS.d.ts +20 -0
  310. package/dist/utils/parse/needsCJS.js +72 -0
  311. package/dist/utils/persistPostprocessHashes.d.ts +12 -0
  312. package/dist/utils/persistPostprocessHashes.js +39 -0
  313. package/dist/utils/processAnchorIds.d.ts +6 -0
  314. package/dist/utils/processAnchorIds.js +56 -0
  315. package/dist/utils/processOpenApi.d.ts +8 -0
  316. package/dist/utils/processOpenApi.js +651 -0
  317. package/dist/utils/sanitizeFileContent.d.ts +6 -0
  318. package/dist/utils/sanitizeFileContent.js +29 -0
  319. package/dist/utils/sharedStaticAssets.d.ts +9 -0
  320. package/dist/utils/sharedStaticAssets.js +384 -0
  321. package/dist/utils/validateMdx.d.ts +10 -0
  322. package/dist/utils/validateMdx.js +25 -0
  323. package/dist/utils/wrapPlainUrls.d.ts +8 -0
  324. package/dist/utils/wrapPlainUrls.js +72 -0
  325. package/dist/workflows/download.d.ts +32 -0
  326. package/dist/workflows/download.js +131 -0
  327. package/dist/workflows/enqueue.d.ts +17 -0
  328. package/dist/workflows/enqueue.js +59 -0
  329. package/dist/workflows/setupProject.d.ts +13 -0
  330. package/dist/workflows/setupProject.js +48 -0
  331. package/dist/workflows/stage.d.ts +18 -0
  332. package/dist/workflows/stage.js +59 -0
  333. package/dist/workflows/steps/BranchStep.d.ts +13 -0
  334. package/dist/workflows/steps/BranchStep.js +161 -0
  335. package/dist/workflows/steps/DownloadStep.d.ts +19 -0
  336. package/dist/workflows/steps/DownloadStep.js +131 -0
  337. package/dist/workflows/steps/EnqueueStep.d.ts +15 -0
  338. package/dist/workflows/steps/EnqueueStep.js +33 -0
  339. package/dist/workflows/steps/PollJobsStep.d.ts +31 -0
  340. package/dist/workflows/steps/PollJobsStep.js +288 -0
  341. package/dist/workflows/steps/SetupStep.d.ts +16 -0
  342. package/dist/workflows/steps/SetupStep.js +72 -0
  343. package/dist/workflows/steps/UploadSourcesStep.d.ts +27 -0
  344. package/dist/workflows/steps/UploadSourcesStep.js +131 -0
  345. package/dist/workflows/steps/UploadTranslationsStep.d.ts +22 -0
  346. package/dist/workflows/steps/UploadTranslationsStep.js +71 -0
  347. package/dist/workflows/steps/UserEditDiffsStep.d.ts +11 -0
  348. package/dist/workflows/steps/UserEditDiffsStep.js +30 -0
  349. package/dist/workflows/steps/WorkflowStep.d.ts +4 -0
  350. package/dist/workflows/steps/WorkflowStep.js +2 -0
  351. package/dist/workflows/upload.d.ts +15 -0
  352. package/dist/workflows/upload.js +47 -0
  353. package/package.json +149 -112
  354. package/.dont-break +0 -6
  355. package/.jshintrc +0 -76
  356. package/.npmignore +0 -9
  357. package/.travis.yml +0 -21
  358. package/Gruntfile.js +0 -65
  359. package/History.md +0 -90
  360. package/MIT-License.txt +0 -21
  361. package/bin/gt.js +0 -58
  362. package/complexity.json +0 -17
  363. package/doc/RequireJsExample.md +0 -10
  364. package/examples/all.js +0 -72
  365. package/examples/altAsserrionSyntax/tests.js +0 -32
  366. package/examples/amd/bar.js +0 -4
  367. package/examples/amd/foo.js +0 -15
  368. package/examples/amd/fooTests.js +0 -8
  369. package/examples/arrays/test.js +0 -15
  370. package/examples/assert/test-assert-object.js +0 -15
  371. package/examples/assert/test-assert-require.js +0 -17
  372. package/examples/async/asyncAll.js +0 -37
  373. package/examples/async/asyncSetup.js +0 -29
  374. package/examples/async/asyncSetupOnce.js +0 -25
  375. package/examples/async/asyncTeardown.js +0 -27
  376. package/examples/async/stopStart.js +0 -22
  377. package/examples/async/test.js +0 -43
  378. package/examples/async/timeoutTests.js +0 -19
  379. package/examples/basic/code.js +0 -50
  380. package/examples/basic/code2.js +0 -9
  381. package/examples/basic/default.js +0 -26
  382. package/examples/basic/definedUndefined.js +0 -28
  383. package/examples/basic/empty.js +0 -24
  384. package/examples/basic/exceptionTests.js +0 -55
  385. package/examples/basic/fullMessage.js +0 -28
  386. package/examples/basic/functions.js +0 -18
  387. package/examples/basic/incomplete.js +0 -16
  388. package/examples/basic/null.js +0 -17
  389. package/examples/basic/optional.js +0 -45
  390. package/examples/basic/tests.js +0 -147
  391. package/examples/bdd/spec.js +0 -67
  392. package/examples/browser/code_coverage_report.json +0 -1
  393. package/examples/browser/index.html +0 -50
  394. package/examples/browser/packages.js +0 -12
  395. package/examples/browser/packagesDefault.js +0 -12
  396. package/examples/browser/qunit/qunit-1.10.0.css +0 -235
  397. package/examples/browser/qunit/qunit-1.10.0.js +0 -1977
  398. package/examples/browser/runTestsWithCoverage.bat +0 -19
  399. package/examples/browser/runner.js +0 -178
  400. package/examples/browser/src/Foo.js +0 -14
  401. package/examples/browser/srcInstrumented/Foo.js +0 -6
  402. package/examples/browser/test/FooTest.js +0 -31
  403. package/examples/browser/testDojo.js +0 -63
  404. package/examples/browser/testInstrumented/FooTest.js +0 -6
  405. package/examples/coffee/coffeeTestsCoffee/foo.coffee +0 -4
  406. package/examples/coffee/coffeeTestsCoffee/tests.coffee +0 -7
  407. package/examples/coffee/coffeeTestsJs/foo.js +0 -9
  408. package/examples/coffee/coffeeTestsJs/tests.coffee +0 -9
  409. package/examples/coffee/jsTestsCoffee/foo.coffee +0 -4
  410. package/examples/coffee/jsTestsCoffee/tests.js +0 -8
  411. package/examples/coverage.png +0 -0
  412. package/examples/crash/foo.js +0 -8
  413. package/examples/crashOnLoading/foo.js +0 -3
  414. package/examples/crashStackSize/foo.js +0 -8
  415. package/examples/crashStackSize/test.js +0 -7
  416. package/examples/doh/foo.js +0 -15
  417. package/examples/doh/fooTests.js +0 -28
  418. package/examples/dohDefine/foo.js +0 -14
  419. package/examples/dohDefine/fooTests.js +0 -24
  420. package/examples/dojo/src/Foo.js +0 -12
  421. package/examples/dojo/test/FooTest.js +0 -9
  422. package/examples/dojo/testDojo.js +0 -69
  423. package/examples/equiv/equiv.js +0 -22
  424. package/examples/example.png +0 -0
  425. package/examples/exec/foo.js +0 -5
  426. package/examples/exec/tests.js +0 -50
  427. package/examples/expect/test.js +0 -53
  428. package/examples/extend/extend-through-api.js +0 -40
  429. package/examples/extend/test.js +0 -18
  430. package/examples/faster/fibonacci.js +0 -18
  431. package/examples/faster/test.js +0 -89
  432. package/examples/fluent/foo.js +0 -38
  433. package/examples/funcAndArity/test.js +0 -15
  434. package/examples/gtAndQUnit/gtTests.js +0 -6
  435. package/examples/gtAndQUnit/qunitTests.js +0 -5
  436. package/examples/jsUnity/foo.js +0 -10
  437. package/examples/jsUnity/fooTests.js +0 -19
  438. package/examples/lodash/totalLength.js +0 -19
  439. package/examples/longStrings/test.js +0 -27
  440. package/examples/moduleSetupTeardown/test.js +0 -115
  441. package/examples/namedTest/foo.js +0 -9
  442. package/examples/overrideGt/test.js +0 -11
  443. package/examples/quickFail/test.js +0 -22
  444. package/examples/qunit/foo.js +0 -13
  445. package/examples/reporting/tests.coffee +0 -9
  446. package/examples/requirejs/lib/Foo.js +0 -11
  447. package/examples/requirejs/lib/Rectangle.js +0 -13
  448. package/examples/requirejs/runTests.js +0 -5
  449. package/examples/requirejs/test/RectangleTest.js +0 -22
  450. package/examples/silent/foo.js +0 -7
  451. package/examples/silent/fooTest.js +0 -18
  452. package/examples/skipTest/tests.js +0 -15
  453. package/examples/testsFromOtherTests/parentTests.js +0 -7
  454. package/examples/testsFromOtherTests/tests.js +0 -5
  455. package/examples/throws/test.js +0 -17
  456. package/examples/use-gt-as-module/fooTest.js +0 -8
  457. package/examples/use-gt-as-module/test-code.js +0 -7
  458. package/gt.js +0 -11
  459. package/lib/coverage.js +0 -234
  460. package/src/JUnitReporter.js +0 -30
  461. package/src/QUnitBrowserAdapter.js +0 -15
  462. package/src/Reporter.js +0 -127
  463. package/src/TestRunInfo.js +0 -25
  464. package/src/TestRunner.js +0 -223
  465. package/src/UnitTest/CollectionMethods.js +0 -97
  466. package/src/UnitTest/ModuleTests.js +0 -104
  467. package/src/UnitTest/Test.js +0 -85
  468. package/src/UnitTest/TestAsync.js +0 -78
  469. package/src/UnitTest/TestBaseInfo.js +0 -21
  470. package/src/UnitTest/TestCollection.js +0 -206
  471. package/src/UnitTest/TestInfo.js +0 -30
  472. package/src/UnitTest/TestReport.js +0 -27
  473. package/src/assertions/PrimaryAssertions.js +0 -163
  474. package/src/assertions/SecondaryAssertions.js +0 -262
  475. package/src/assertions/TertiaryAssertions.js +0 -99
  476. package/src/bddInterface.js +0 -39
  477. package/src/covered.js +0 -156
  478. package/src/dohAdapter.js +0 -79
  479. package/src/dohInterface.js +0 -20
  480. package/src/equiv.js +0 -11
  481. package/src/jsunityAdapter.js +0 -66
  482. package/src/jsunityInterface.js +0 -13
  483. package/src/options.js +0 -116
  484. package/src/shiv.js +0 -16
  485. package/src/sure.js +0 -226
  486. package/src/test/ConsoleHider.js +0 -26
  487. package/src/test/JUnitReporter.js +0 -12
  488. package/src/test/ModuleTests.js +0 -37
  489. package/src/test/Test.js +0 -18
  490. package/src/test/TestCollection.js +0 -21
  491. package/src/test/TestRunInfo.js +0 -15
  492. package/src/test/TestRunner.js +0 -9
  493. package/src/test/utils.js +0 -43
  494. package/src/utils/ConsoleHider.js +0 -27
  495. package/src/utils/WatchFiles.js +0 -13
  496. package/src/utils/discoverFiles.js +0 -18
  497. package/src/utils/joinArguments.js +0 -13
  498. package/src/utils/not.js +0 -14
  499. package/src/utils/pluckFunction.js +0 -15
  500. package/src/utils/test/joinArgumentsTest.js +0 -24
  501. package/src/utils/test/not.js +0 -70
  502. package/src/utils/test/pluckFunctionLoDashTest.js +0 -51
  503. package/src/utils/test/pluckFunctionTest.js +0 -41
  504. package/src/utils/test/pluckObjects.js +0 -20
  505. package/src/utils/utils.js +0 -146
  506. package/tests/all.js +0 -24
  507. package/tests/large/bddTest.js +0 -9
  508. package/tests/large/expectedCrash.js +0 -3
  509. package/tests/large/expectedCrashTest.js +0 -9
  510. package/tests/large/filterCLI.js +0 -10
  511. package/tests/large/filterCLITest.js +0 -18
  512. package/tests/large/loadingCrash.js +0 -1
  513. package/tests/large/loadingCrashTest.js +0 -9
  514. package/tests/large/skip.js +0 -11
  515. package/tests/large/skipTest.js +0 -9
  516. package/tests/large/twoFailing.js +0 -9
  517. package/tests/large/twoFailingTest.js +0 -9
  518. package/tests/mocha/.npmignore +0 -1
  519. package/tests/mocha/basic.js +0 -12
  520. package/tests/mocha/gt-as-module.js +0 -65
  521. package/tests/mocha/test-collection.js +0 -67
  522. package/tests/small/errorInAsync.js +0 -6
  523. package/tests/small/errorInAsyncTest.js +0 -14
  524. package/tests/small/oneFails.js +0 -7
  525. package/tests/small/oneFailsTest.js +0 -18
  526. package/tests/small/pluckObjects.js +0 -20
  527. package/tests/small/pluckTest.js +0 -51
  528. package/tests/small/setupException.js +0 -8
  529. package/tests/small/setupExceptionTest.js +0 -9
  530. package/tests/small/teardownException.js +0 -8
  531. package/tests/small/teardownExceptionTest.js +0 -9
package/src/TestRunner.js DELETED
@@ -1,223 +0,0 @@
1
- var ConsoleHider = require('./utils/ConsoleHider').ConsoleHider;
2
- var TestRunInfo = require('./TestRunInfo').TestRunInfo;
3
- var BasicAssertions = require('./assertions/PrimaryAssertions');
4
- var SecondaryAssertions = require('./assertions/SecondaryAssertions');
5
- var TertiaryAssertions = require('./assertions/TertiaryAssertions');
6
-
7
- var check = require('check-types');
8
- var _ = require('lodash');
9
- var async = require('async');
10
- var Q = require('q');
11
- var quote = require('quote');
12
-
13
- var TestRunner = {
14
- init: function (config) {
15
- config = config || {};
16
- config.output = config.output || false;
17
-
18
- TestRunInfo._currentTest = null;
19
- this.modules = null;
20
- this.config = config;
21
- },
22
-
23
- // todo: add started / finished info
24
- executeTest: function (test, callback) {
25
- check.verify.object(test, 'expected a test object');
26
- check.verify.fn(callback, 'expected callback object');
27
-
28
- test.check();
29
- if (test.skip) {
30
- log.info('skipping test', quote(test.name));
31
- callback();
32
- return;
33
- }
34
-
35
- TestRunInfo._currentTest = test;
36
- var hider = null;
37
-
38
- function onTestFinished() {
39
- if (hider) {
40
- test.stdout = hider.restoreConsole();
41
- }
42
- log.debug('finished test', quote(test.name),
43
- TestRunInfo._currentTest.assertions + ' assertions,',
44
- TestRunInfo._currentTest.broken, 'broken');
45
-
46
- try {
47
- TestRunInfo._afterTest();
48
- } catch (err) {
49
- console.error('caught error after test', quote(test.name));
50
- console.error(err);
51
- callback(err);
52
- return;
53
- }
54
-
55
- callback();
56
- }
57
-
58
- function printFirstStackLines(stack) {
59
- if (!stack) {
60
- return;
61
- }
62
-
63
- var lines = stack.split('\n');
64
- var maxLines = 5;
65
- if (lines.length < maxLines) {
66
- console.log('stack:\n', lines.join('\n'));
67
- } else {
68
- var firstLines = lines.slice(0, maxLines).join('\n');
69
- console.log('stack:\n', firstLines);
70
- console.log(lines.length - maxLines + ' stack lines clipped');
71
- }
72
- }
73
-
74
- try {
75
- test.start(onTestFinished);
76
-
77
- if (!this.config.output) {
78
- hider = new ConsoleHider();
79
- hider.hideConsole();
80
- } else {
81
- log.info('starting test', quote(test.name));
82
- }
83
- test.code(global.gt);
84
- } catch (errors) {
85
- console.error('crash in test', quote(test.name));
86
- console.error(errors);
87
- // console.error(errors.stack);
88
- printFirstStackLines(errors.stack);
89
-
90
- test.hasCrashed = true;
91
- test.finished = new Date();
92
- test.async = false;
93
- } finally {
94
- if (TestRunInfo._currentTest && !TestRunInfo._currentTest.async) {
95
- TestRunInfo._currentTest.finished = new Date();
96
- // console.log('sync test', TestRunInfo._currentTest.name, 'has finished');
97
- onTestFinished();
98
- }
99
- }
100
- },
101
-
102
- runTests: function (verifyIntegrity, onAllTestsFinished) {
103
- check.verify.array(this.modules, 'runner has no test collection');
104
- check.verify.fn(onAllTestsFinished, 'missing all tests completed function');
105
-
106
- async.eachSeries(this.modules,
107
- this.runModule.bind(this, verifyIntegrity),
108
- function (err) {
109
- if (err) {
110
- console.error('caught error running modules', err);
111
- }
112
- // console.log('finished all tests from all modules');
113
- onAllTestsFinished(err);
114
- });
115
- },
116
-
117
- runSingleTest: function (preTest, verifyIntegrity, postTest, test, callback) {
118
- check.verify.fn(preTest, 'missing preTest');
119
- check.verify.fn(verifyIntegrity, 'missing verifyIntegrity');
120
- check.verify.fn(postTest, 'missing postTest');
121
-
122
- check.verify.object(test, 'missing test');
123
- check.verify.fn(callback, 'missing callback function');
124
-
125
- function executePreTest(fn, errorCallback) {
126
- try {
127
- return fn();
128
- } catch (err) {
129
- console.log('pretest error\n', err);
130
- errorCallback(err);
131
- }
132
- }
133
-
134
- var self = this;
135
-
136
- Q.when(executePreTest(preTest, callback)).then(function () {
137
- self.executeTest(test, function () {
138
- verifyIntegrity();
139
-
140
- Q.when(postTest()).then(function () {
141
- callback();
142
- });
143
- });
144
- }).catch(function (err) {
145
- console.error('error stack\n' + err.stack);
146
- callback(err);
147
- });
148
- },
149
-
150
- runModule: function (verifyIntegrity, testModule, allModuleTestsCompleted) {
151
- check.verify.fn(verifyIntegrity, 'verify integrity should be a function');
152
- check.verify.object(testModule, 'missing test module');
153
- check.verify.fn(allModuleTestsCompleted, 'missing module completed function');
154
-
155
- if (testModule.lifecycle.setupOnce) {
156
- check.verify.fn(testModule.lifecycle.setupOnce, 'setupOnce should be a function');
157
- }
158
-
159
- if (testModule.lifecycle.teardownOnce) {
160
- check.verify.fn(testModule.lifecycle.teardownOnce, 'teardownOnce should be a function');
161
- }
162
-
163
- var preEachTest = testModule.lifecycle.setup;
164
- check.verify.fn(preEachTest, 'module setup should be a function');
165
-
166
- var postEachTest = testModule.lifecycle.teardown;
167
- check.verify.fn(postEachTest, 'module teardown should be a function');
168
-
169
- log.debug('starting module', quote(testModule.name));
170
- var testSteps = this.runSingleTest.bind(this, preEachTest, verifyIntegrity, postEachTest);
171
-
172
- function runOnce(fn, errorCallback) {
173
- if (!check.fn(fn)) {
174
- return;
175
- }
176
- try {
177
- return fn();
178
- } catch (err) {
179
- console.log('module', quote(testModule.name), 'run once error\n', err);
180
- testModule.crashed = true;
181
- errorCallback(err);
182
- }
183
- }
184
-
185
- Q.when(runOnce(testModule.lifecycle.setupOnce, allModuleTestsCompleted))
186
- .then(function () {
187
- async.eachSeries(testModule._tests,
188
- testSteps,
189
- function (err) {
190
- if (err) {
191
- console.error('caught error in module', quote(testModule.name));
192
- testModule.crashed = true;
193
- testModule._tests.forEach(function (test) {
194
- test.hasCrashed = true;
195
- });
196
- }
197
- Q.when(runOnce(testModule.lifecycle.teardownOnce, allModuleTestsCompleted))
198
- .then(function () {
199
- allModuleTestsCompleted(err);
200
- });
201
- });
202
- }).catch(function (err) {
203
- console.error('module', quote(module.name), 'error stack\n' + err.stack);
204
- allModuleTestsCompleted(err);
205
- });
206
- }
207
- };
208
-
209
- _.extend(TestRunner, BasicAssertions, SecondaryAssertions, TertiaryAssertions);
210
-
211
- TestRunner.getBindMethods = function () {
212
- return this.basic().concat(this.secondary()).concat(TertiaryAssertions.assertions());
213
- };
214
-
215
- process.on('error', function (err) {
216
- if (TestRunInfo._currentTest) {
217
- console.error('Crash in test', TestRunner._currentTest);
218
- console.error(err);
219
- process.exit(1);
220
- }
221
- });
222
-
223
- exports.TestRunner = TestRunner;
@@ -1,97 +0,0 @@
1
- var ModuleTests = require("./ModuleTests").ModuleTests;
2
- var getCallerFilename = require('../utils/utils').getCallerFilename;
3
- var check = require('check-types');
4
- var quote = require('quote');
5
-
6
- var CollectionMethods = {
7
- module: function (name, lifecycle) {
8
- check.verify.string(name, "module name should be a string");
9
- check.verify.array(this.modules, "modules is not an array");
10
- check.verify.object(this.testOnlyModules, 'test modules should be an object');
11
-
12
- if (this.shouldTestModule(name) && !this.shouldSkipModule(name)) {
13
- log.debug("module " + quote(name));
14
- this.currentModule = new ModuleTests(name, lifecycle);
15
- this.modules.push(this.currentModule);
16
- }
17
- },
18
-
19
- _addTest: function (options) {
20
- check.verify.object(options, 'missing test options');
21
- options.skip = !!options.skip;
22
- options.async = !!options.async;
23
-
24
- this._startModuleIfNecessary();
25
- check.verify.object(this.currentModule, "current module is not defined, cannot add test", options.name);
26
-
27
- if (check.number(options.code) && !options.timeout) {
28
- options.timeout = options.code;
29
- }
30
-
31
- if (check.fn(options.expected) && !check.fn(options.code)) {
32
- options.code = options.expected;
33
- options.expected = undefined;
34
- }
35
-
36
- if (check.fn(options.name) && !check.fn(options.code)) {
37
- options.code = options.name;
38
- options.name = options.code.name;
39
- }
40
- check.verify.string(options.name, 'missing unit test name');
41
- var testFilename = getCallerFilename() || this.currentFileName;
42
- check.verify.string(testFilename, 'could not get filename for test', options.name);
43
- if (options.timeout) {
44
- options.timeout = +options.timeout;
45
- }
46
-
47
- this.currentModule.add({
48
- name: options.name,
49
- code: options.code,
50
- filename: testFilename,
51
- skip: options.skip,
52
- async: options.async,
53
- timeout: options.timeout,
54
- expected: options.expected
55
- });
56
- },
57
-
58
- asyncTest: function (name, expected, code, timeoutMs) {
59
- this._addTest({
60
- name: name,
61
- expected: expected,
62
- code: code,
63
- skip: false,
64
- async: true,
65
- timeout: timeoutMs
66
- });
67
- },
68
-
69
- async: function () {
70
- this.asyncTest.apply(this, Array.prototype.slice.call(arguments));
71
- },
72
-
73
- test: function (name, expected, code) {
74
- this._addTest({
75
- name: name,
76
- code: code,
77
- expected: expected,
78
- skip: false,
79
- async: false
80
- });
81
- },
82
-
83
- notest: function () {
84
- this.skip.apply(this, Array.prototype.slice.call(arguments));
85
- },
86
-
87
- skip: function (name, expected, code) {
88
- this._addTest({
89
- name: name,
90
- code: code,
91
- expected: expected,
92
- skip: true,
93
- async: false
94
- });
95
- }
96
- };
97
- exports.CollectionMethods = CollectionMethods;
@@ -1,104 +0,0 @@
1
- /* jshint indent:2 */
2
- var Test = require('./Test').Test;
3
- var _ = require('lodash');
4
- var check = require('check-types');
5
- var verify = check.verify;
6
- var pluck = require('../utils/pluckFunction');
7
- verify.fn(pluck, 'could not load pluck function');
8
-
9
- var noop = function () {};
10
-
11
- var ModuleTests = function (name, lifecycle) {
12
- this._tests = [];
13
- if (name) {
14
- verify.unemptyString(name, 'module name should be a string, not', name);
15
- }
16
- this.name = name || 'default';
17
- if (lifecycle) {
18
- check.verify.object(lifecycle, 'lifecycle should be an object');
19
- }
20
- this.lifecycle = lifecycle || {};
21
- this.lifecycle.setup = this.lifecycle.setup || noop;
22
- this.lifecycle.teardown = this.lifecycle.teardown || noop;
23
-
24
- // crashed somewhere in the lifecycle functions
25
- this.crashed = false;
26
- };
27
-
28
- ModuleTests.prototype.add = function (options) {
29
- verify.object(options, 'missing test options');
30
- verify.string(options.name, 'missing test name');
31
- verify.fn(options.code, 'expected a test function');
32
- verify.string(options.filename, 'expected a filename string');
33
-
34
- verify.array(this._tests, 'this._tests is defined');
35
- options.moduleName = this.name;
36
- var test = new Test(options);
37
- this._tests.push(test);
38
- };
39
-
40
- ModuleTests.prototype.getNumberOfTests = function () {
41
- return this._tests.length;
42
- };
43
-
44
- ModuleTests.prototype.getTests = function () {
45
- return this._tests;
46
- };
47
-
48
- ModuleTests.prototype.getFilename = function () {
49
- var filenames = this.getTestFilenames();
50
- verify.array(filenames, 'filenames should be an array');
51
- return filenames[0];
52
- };
53
-
54
- ModuleTests.prototype.getTestFilenames = function () {
55
- var filenames = _.pluck(this._tests, 'filename');
56
- filenames = _.uniq(filenames);
57
- return filenames;
58
- };
59
-
60
- ModuleTests.prototype.hasFailed = function () {
61
- return !this.crashed && this._tests.some(pluck('hasFailed'));
62
- };
63
-
64
- ModuleTests.prototype.notRun = function () {
65
- return !this.getFailedTests() && !this.getPassedTests();
66
- };
67
-
68
- ModuleTests.prototype.getFailedTests = function () {
69
- verify.array(this._tests, 'tests are not defined');
70
- var failedTests = this._tests.filter(pluck('hasFailed'));
71
- var crashedTests = this._tests.filter(pluck('hasCrashed'));
72
- return failedTests.concat(crashedTests);
73
- };
74
-
75
- ModuleTests.prototype.getPassedTests = function () {
76
- return this._tests.reduce(function (good, test) {
77
- return good + !test.hasFailed();
78
- }, 0);
79
- };
80
-
81
- ModuleTests.prototype.passedPercentage = function () {
82
- var failed = this.getFailedTests();
83
- var goodTests = this._tests.length - failed.length;
84
- var percent = (this._tests.length > 0 ? goodTests / this._tests.length : 1) * 100;
85
- return percent;
86
- };
87
-
88
- ModuleTests.prototype.duration = function () {
89
- if (this.crashed) {
90
- return 0;
91
- }
92
- return this._tests.reduce(function (total, test) {
93
- return total += test.duration();
94
- }, 0);
95
- };
96
-
97
- ModuleTests.prototype.filterTests = function (expression) {
98
- console.assert(_.isRegExp(expression), 'filter expression should be RegExp');
99
- this._tests = this._tests.filter(function (test) {
100
- return expression.test(test.name);
101
- });
102
- };
103
-
104
- exports.ModuleTests = ModuleTests;
@@ -1,85 +0,0 @@
1
- var TestBaseInfo = require('./TestBaseInfo').TestBaseInfo;
2
- var TestInfo = require('./TestInfo').TestInfo;
3
- var TestAsync = require('./TestAsync').TestAsync;
4
- var TestReport = require('./TestReport').TestReport;
5
- var _ = require('lodash');
6
- var check = require('check-types');
7
-
8
- // individual unit test
9
- var Test = function (options) {
10
- TestBaseInfo.call(this, options);
11
- TestInfo.call(this);
12
- TestAsync.call(this, options);
13
- };
14
-
15
- Test.prototype = Object.create(TestAsync.prototype);
16
- _.extend(Test.prototype, TestInfo.prototype);
17
- _.extend(Test.prototype, TestReport);
18
-
19
- Test.prototype.hasFailed = function () {
20
- if (!this.hasReallyFailed()) {
21
- return false;
22
- }
23
- if (this.expectsCertainStatus()) {
24
- return !this.achievedExpectedResult();
25
- }
26
- return true;
27
- };
28
-
29
- Test.prototype.hasReallyFailed = function () {
30
- var stat = this.status();
31
- check.verify.string(stat, 'could not get status for', this.name);
32
- return stat !== Test.PASS && stat !== Test.SKIP;
33
- };
34
-
35
- Test.prototype.expectsCertainStatus = function () {
36
- if (this.name.indexOf(Test.PASS) === 0) {
37
- return true;
38
- }
39
- if (this.name.indexOf(Test.FAIL) === 0) {
40
- return true;
41
- }
42
- if (this.name.indexOf(Test.CRASH) === 0) {
43
- return true;
44
- }
45
- if (this.name.indexOf(Test.INCOMPLETE) === 0) {
46
- return true;
47
- }
48
- return false;
49
- };
50
-
51
- Test.prototype.achievedExpectedResult = function() {
52
- var stat = this.status();
53
- check.verify.string(stat, 'could not get test status for', this.name);
54
- return this.name.indexOf(stat) === 0;
55
- };
56
-
57
- Test.prototype.status = function () {
58
- check.verify.string(Test.PASS, "Test.PASS is undefined");
59
- if (check.number(this.expected) && (this.expected !== this.assertions)) {
60
- return Test.INCOMPLETE;
61
- }
62
-
63
- if (this.timedOut) {
64
- return Test.INCOMPLETE;
65
- }
66
- if (this.hasCrashed) {
67
- return Test.CRASH;
68
- }
69
- if (this.skip) {
70
- return Test.SKIP;
71
- }
72
- if (this.broken > 0) {
73
- log.debug(this.name, "has", this.broken, "broken assertions, failed");
74
- return Test.FAIL;
75
- }
76
- return Test.PASS;
77
- };
78
-
79
- Test.PASS = "PASS";
80
- Test.FAIL = "FAIL";
81
- Test.CRASH = "CRASH";
82
- Test.INCOMPLETE = "INCOMPLETE";
83
- Test.SKIP = "SKIP";
84
-
85
- exports.Test = Test;
@@ -1,78 +0,0 @@
1
- var check = require('check-types');
2
- var quote = require('quote');
3
-
4
- // async unit test support
5
- var TestAsync = function(options) {
6
- this.async = options.async;
7
- this.timeout = +options.timeout || 5000;
8
- check.verify.positiveNumber(this.timeout, 'should be positive number (timeout ms)', this.timeout);
9
- };
10
-
11
- TestAsync.prototype.start = function (callback, timeout) {
12
- this.hasRun = true;
13
- this.started = new Date();
14
- // console.log('test "' + this.name + '" started on', this.started);
15
- if (this.async) {
16
- // console.log('starting async test', this.name);
17
- check.verify.fn(callback, 'missing callback function in', this.name);
18
- timeout = timeout || this.timeout;
19
- check.verify.positiveNumber(timeout, 'expect timeout number, not', timeout);
20
- this.startTimeout(callback, timeout);
21
- } else {
22
- // allow sync tests to execute callback, for example after calling
23
- // gt.test(
24
- // gt.stop();
25
- // gt.start();
26
- this.onFinished = callback;
27
- }
28
- };
29
-
30
- TestAsync.prototype.startTimeout = function(callback, timeout) {
31
- timeout = timeout || 5000;
32
- check.verify.fn(callback, 'callback should be a function');
33
- check.verify.positiveNumber(timeout, 'invalid timeout', timeout);
34
- this.onFinished = callback;
35
- this.timeoutId = setTimeout(this.checkTestIsStillRunning.bind(this), timeout);
36
- };
37
-
38
- TestAsync.prototype.checkTestIsStillRunning = function() {
39
- // console.log('checking if still running test "' + this.name + '"');
40
- console.assert(this.started, 'missing started timestampt for', this.name);
41
- if (typeof this.finished === 'undefined') {
42
- this.finished = new Date();
43
- this.timedOut = true;
44
- log.error('test ' + quote(this.name) + ' is still executing, timed out after',
45
- (this.finished - this.started) + 'ms');
46
- check.verify.fn(this.onFinished, 'missing on finished function');
47
- setTimeout(this.onFinished, 1);
48
- }
49
- };
50
-
51
- TestAsync.prototype.continueWithTest = function() {
52
- // console.log('start called on test', this.name);
53
- console.assert(this.async, 'only async unit tests should call start()');
54
- console.assert(this.timeoutId, 'missing timeout id when continuing test', this);
55
- clearTimeout(this.timeoutId);
56
- delete this.timeoutId;
57
-
58
- this.finished = new Date();
59
- // current test will continue, then we get control back
60
- // and can run next async test (if any)
61
- setTimeout(this.onFinished, 1);
62
- };
63
-
64
- TestAsync.prototype.pause = function () {
65
- this.async = true;
66
- this.timeoutId = setTimeout(this.checkTestIsStillRunning.bind(this), 5000);
67
- };
68
-
69
- TestAsync.prototype.duration = function() {
70
- if (this.skip) {
71
- return 0;
72
- }
73
- console.assert(this.started, 'missing started timestamp for test ' + quote(this.name));
74
- console.assert(this.finished, 'missing finished timestamp for test ' + quote(this.name));
75
- return this.finished - this.started;
76
- }
77
-
78
- module.exports.TestAsync = TestAsync;
@@ -1,21 +0,0 @@
1
- var check = require('check-types');
2
-
3
- // basic test information: name, parent module name, source filename, etc
4
- var TestBaseInfo = function (options) {
5
- check.verify.object(options, 'missing Test options');
6
- check.verify.string(options.name, "test name should be a string, not", options.name);
7
- check.verify.string(options.moduleName, options.name, "should have module name");
8
- check.verify.fn(options.code, options.name, "should have code function");
9
- check.verify.string(options.filename, options.name, 'should have original source filename');
10
-
11
- this.name = options.name;
12
- this.code = options.code;
13
- this.module = options.moduleName;
14
- this.filename = options.filename;
15
- this.skip = options.skip;
16
-
17
- this.expected = check.number(options.expected) ? options.expected : undefined;
18
- };
19
-
20
- module.exports.TestBaseInfo = TestBaseInfo;
21
-