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
@@ -1,206 +0,0 @@
1
- var CollectionMethods = require('./CollectionMethods').CollectionMethods;
2
- console.assert(CollectionMethods, 'missing test collection methods');
3
-
4
- var path = require('path');
5
- var _ = require('lodash');
6
- var check = require('check-types');
7
- var defaults = require('../utils/utils').defaults;
8
-
9
- var nodejsDefine = 'if (typeof define!=="function") {\n' +
10
- 'function define(A,F){ module.exports=F.apply(null,A.map(require)); }}\n';
11
-
12
- var TestCollection = {
13
- modules: [],
14
- currentModule: undefined,
15
- testOnlyModules: {},
16
- skipTestModules: {},
17
- currentFileName: undefined,
18
- prependAMD: false,
19
-
20
- init: function () {
21
- this.modules = [];
22
- this.currentModule = undefined;
23
- this.testOnlyModules = {};
24
- this.skipTestModules = {};
25
- this.currentFileName = undefined;
26
- this.prependAMD = false;
27
- },
28
-
29
- determineSkipped: function(testModules) {
30
- testModules = defaults(testModules, []);
31
- check.verify.array(testModules, "expected list of modules to process, not", JSON.stringify(testModules));
32
- testModules.forEach(function(item) {
33
- if (/^!/.test(item)) {
34
- item = item.substr(1);
35
- log.debug('need to skip module', item);
36
- this.skipTestModules[item] = item;
37
- } else {
38
- this.testOnlyModules[item] = item;
39
- }
40
- }, this);
41
- },
42
-
43
- attemptAMD: function (moduleName, initialError) {
44
- check.verify.string(moduleName, 'missing module name');
45
-
46
- if (initialError.name === 'ReferenceError' && initialError.message === 'define is not defined') {
47
- console.log('module', moduleName, 'uses AMD define');
48
- this.prependAMD = true;
49
- delete require.cache[moduleName];
50
- require(moduleName);
51
- this.prependAMD = false;
52
- } else {
53
- throw initialError;
54
- }
55
- },
56
-
57
- loadModule: function (moduleName) {
58
- check.verify.string(moduleName, "expected a module name", moduleName);
59
- log.debug("loading module with unit tests", moduleName);
60
-
61
- // jsUnity support, will collect unit tests
62
- global.TestSuite = {};
63
-
64
- try {
65
- this.currentFileName = path.resolve(moduleName);
66
-
67
- try {
68
- delete require.cache[moduleName]; // clear cache just in case to make sure the module is loaded
69
- require(moduleName);
70
- } catch (initialError) {
71
- this.attemptAMD(moduleName, initialError);
72
- }
73
-
74
- if (Object.keys(global.TestSuite).length) {
75
- console.log('collected', Object.keys(global.TestSuite).length, 'jsUnity tests from', this.currentFileName);
76
- gt.module(this.currentFileName);
77
- Object.keys(global.TestSuite).forEach(function (testName) {
78
- var test = global.TestSuite[testName];
79
- gt.test(testName, test);
80
- });
81
- }
82
- } catch (errors) {
83
- console.error(errors + ' while loading ' + moduleName);
84
- console.trace(errors);
85
- process.exit(1);
86
- }
87
- },
88
-
89
- collectTests: function (moduleNames, testModules, testNameFilter) {
90
- check.verify.array(moduleNames, "expected list of test modules");
91
- this.determineSkipped(testModules);
92
-
93
- moduleNames.forEach(this.loadModule, this);
94
- log.debug("loaded", this.getNumberOfTests(), "tests from");
95
-
96
- if (testNameFilter) {
97
- this.filterTests(testNameFilter);
98
- }
99
-
100
- return moduleNames;
101
- },
102
-
103
- preTransform: function (code, filename) {
104
- if (this.prependAMD) {
105
- // console.log('prepending AMD support to code for', filename);
106
- code = nodejsDefine + code;
107
- }
108
- return code;
109
- },
110
-
111
- setTestFilename: function (filename) {
112
- check.verify.string(filename, 'trying to set empty filename');
113
- this.currentFileName = filename;
114
- },
115
-
116
- getTestFilenames: function () {
117
- check.verify.array(this.modules, 'undefined test modules');
118
- if (!this.modules.length) {
119
- if (this.currentFileName) {
120
- return [this.currentFileName];
121
- }
122
- }
123
-
124
- var testFilenames = _(testFilenames)
125
- .invoke('getTestFilenames')
126
- .flatten()
127
- .uniq()
128
- .value();
129
- // console.log('test filenames\n', testFilenames);
130
- return testFilenames;
131
- },
132
-
133
- _startModuleIfNecessary: function() {
134
- if ("undefined" === typeof this.currentModule) {
135
- this.module("unnamed");
136
- }
137
- check.verify.string(this.currentFileName, 'current filename not set');
138
- },
139
-
140
- shouldTestModule: function (name) {
141
- check.verify.string(name, "module name should be a string");
142
- if (!Object.keys(this.testOnlyModules).length) {
143
- return true;
144
- }
145
- return !!this.testOnlyModules[name];
146
- },
147
-
148
- shouldSkipModule: function (name) {
149
- check.verify.string(name, "module name should be a string");
150
- check.verify.object(this.skipTestModules, 'skip test modules should be an object');
151
- return !!this.skipTestModules[name];
152
- },
153
-
154
- filterTests: function (nameExpression) {
155
- if (!nameExpression) {
156
- return;
157
- }
158
- this.modules.forEach(function (m) {
159
- m.filterTests(nameExpression);
160
- });
161
- // todo: remove modules without tests
162
- },
163
-
164
- getAllTests: function () {
165
- check.verify.array(this.modules, "modules is not an array");
166
-
167
- return this.modules.reduce(function(all, m) {
168
- var tests = m.getTests();
169
- return all.concat(tests);
170
- }, []);
171
- },
172
-
173
- getNumberOfTests: function () {
174
- check.verify.array(this.modules, "modules is not an array");
175
-
176
- return this.modules.reduce(function (total, m) {
177
- return total + m.getNumberOfTests();
178
- }, 0);
179
- },
180
-
181
- getFailedTests: function () {
182
- check.verify.array(this.modules, "modules are not defined");
183
-
184
- return this.modules.reduce(function(failed, testModule) {
185
- var moduleFailed = testModule.getFailedTests();
186
- check.verify.array(moduleFailed, "could not get failed tests from module", testModule.name);
187
- return failed.concat(moduleFailed);
188
- }, []);
189
- },
190
-
191
- passedPercentage: function () {
192
- var all = this.getNumberOfTests();
193
- var failed = this.getFailedTests();
194
- var goodTests = all - failed.length;
195
- var percent = (all > 0 ? goodTests / all * 100 : 100);
196
- return percent;
197
- },
198
-
199
- getBindMethods: function () {
200
- return ['module', 'test', 'skip', 'notest', 'asyncTest', 'async'];
201
- }
202
- };
203
-
204
- _.extend(TestCollection, CollectionMethods);
205
-
206
- exports.TestCollection = TestCollection;
@@ -1,30 +0,0 @@
1
- var check = require('check-types');
2
-
3
- // test information updated during unit test execution (assertions, crashes, messages)
4
- var TestInfo = function () {
5
- this.assertions = 0;
6
- this.broken = 0;
7
- this.hasCrashed = false;
8
- this.messages = [];
9
- this.stdout = null;
10
- this.hasRun = false;
11
- };
12
-
13
- TestInfo.prototype.check = function () {
14
- check.verify.string(this.name, "test name should be a string");
15
- console.assert(!this.assertions, "test", this.name, "should start with 0 assertions");
16
- console.assert(!this.broken, "test", this.name, "should start with 0 broken assertions");
17
- check.verify.fn(this.code, this.name, "should have code");
18
- check.verify.string(this.filename, this.name, 'should have original source filename');
19
- return true;
20
- };
21
-
22
- TestInfo.prototype.errorMessage = function(msg) {
23
- this.messages.push(msg);
24
- };
25
-
26
- TestInfo.prototype.getMessages = function () {
27
- return this.messages;
28
- };
29
-
30
- module.exports.TestInfo = TestInfo;
@@ -1,27 +0,0 @@
1
- var sprintf = require('sprintf').sprintf;
2
- var check = require('check-types');
3
-
4
- var TestReport = {};
5
-
6
- TestReport.formMessage = function (lineLength) {
7
- lineLength = lineLength || 100;
8
- var maxNameLength = lineLength - 32;
9
- if (maxNameLength < 10) {
10
- maxNameLength = 10;
11
- }
12
- var format = " %-" + maxNameLength + "s %3d%% (%d / %d) : %s";
13
-
14
- var maxAssertions = (this.expected ? this.expected : this.assertions);
15
- var good = this.assertions - this.broken;
16
- var percent = (this.assertions === 0 ? 100 : good / this.assertions * 100);
17
-
18
- var testNameFitted = this.name.length < maxNameLength ?
19
- this.name :
20
- this.name.substr(0, maxNameLength - 3) + '...'
21
- var status = this.status();
22
- check.verify.string(status, "could not get status for", message);
23
- var message = sprintf(format, testNameFitted, percent, good, maxAssertions, this.status());
24
- return message;
25
- };
26
-
27
- module.exports.TestReport = TestReport;
@@ -1,163 +0,0 @@
1
- var TestRunInfo = require('../TestRunInfo').TestRunInfo;
2
- var check = require('check-types');
3
- var joinArguments = require('../utils/joinArguments');
4
- var quote = require('quote');
5
-
6
- function tooLong(str) {
7
- check.verify.string(str, 'expected string to compare length');
8
- var LIMIT = 10;
9
- return str.length > LIMIT;
10
- }
11
-
12
- function formatEqualMessage(actual, expected, info) {
13
- var first = JSON.stringify(actual, null, 2);
14
- var second = JSON.stringify(expected, null, 2);
15
- var message = '';
16
-
17
- if (tooLong(first)) {
18
- message += '\n' + first + '\n';
19
- } else {
20
- message = first;
21
- }
22
-
23
- message += " !== ";
24
-
25
- if (tooLong(second)) {
26
- message += '\n' + second + '\n';
27
- } else {
28
- message += second;
29
- }
30
-
31
- if (info) {
32
- message += ' ' + info;
33
- }
34
- return message;
35
- }
36
-
37
- var PrimaryAssertions = {
38
- basic: function () {
39
- return ['equal', 'ok', 'expect', 'raises', 'stop', 'start', 'push'];
40
- },
41
-
42
- /**
43
- Stops testing framework (test wants to do async call for example).
44
- Async tests do not have to call stop, it is done automatically
45
-
46
- @method stop
47
- @memberOf gt
48
- @category Test
49
- */
50
- stop: function () {
51
- check.verify.object(TestRunInfo._currentTest, "current test is undefined");
52
- TestRunInfo._currentTest.pause();
53
- },
54
-
55
- /**
56
- Starts testing framework (after async delay for example)
57
-
58
- @method start
59
- @memberOf gt
60
- @category Test
61
- */
62
- start: function () {
63
- check.verify.object(TestRunInfo._currentTest, "current test is undefined");
64
- TestRunInfo._currentTest.continueWithTest();
65
- },
66
-
67
- /**
68
- Asserts strict equality
69
-
70
- @method equal
71
- @memberOf gt
72
- @category Basic assertions
73
- */
74
- equal: function (a, b) {
75
- TestRunInfo._beforeAssertion();
76
-
77
- if (a !== b) {
78
- var message = formatEqualMessage(a, b, joinArguments(arguments, 2));
79
- /*
80
- var message = a + " !== " + b;
81
- message += ' ' + joinArguments(arguments, 2);
82
- */
83
- TestRunInfo._brokenAssertion(message);
84
- }
85
- },
86
-
87
- /**
88
- Asserts if condition evaluates to true
89
-
90
- @method ok
91
- @memberOf gt
92
- @category Basic assertions
93
- */
94
- ok: function (condition) {
95
- TestRunInfo._beforeAssertion();
96
-
97
- if (!condition) {
98
- var message = quote(condition) + ' failed';
99
- message += ' ' + joinArguments(arguments, 1);
100
- TestRunInfo._brokenAssertion(message);
101
- }
102
- },
103
-
104
- push: function (condition, expected, actual, message) {
105
- this.ok(condition, 'expected ' + quote(expected) + ' got ' + quote(actual) + ' ' + message);
106
- },
107
-
108
- /**
109
- Asserts that given function raises an assertion when executed.
110
-
111
- @method raises
112
- @memberOf gt
113
- @category Basic assertions
114
- */
115
- raises: function (code, expectedExceptionType, message) {
116
- check.verify.object(TestRunInfo._currentTest, "current test is undefined");
117
- var typeName = null;
118
- if (!message && typeof expectedExceptionType === 'string') {
119
- message = expectedExceptionType;
120
- expectedExceptionType = null;
121
- } else {
122
- console.assert(expectedExceptionType !== undefined, "undefined expected exception type, message:", message);
123
- typeName = expectedExceptionType.name;
124
- }
125
- check.verify.string(message, "message should be a string");
126
- TestRunInfo._beforeAssertion();
127
-
128
- try {
129
- code();
130
- } catch (error) {
131
- if (!typeName ||
132
- expectedExceptionType === typeof error ||
133
- error.name === expectedExceptionType ||
134
- error.name === typeName) {
135
- return;
136
- }
137
- var caughtType = error.name || typeof error;
138
- TestRunInfo._brokenAssertion("expected exception of type " + quote(typeName) + ", caught " + quote(caughtType) + " " + quote(message));
139
- return;
140
- }
141
- if (typeName) {
142
- TestRunInfo._brokenAssertion("exception of type " + quote(typeName) + " not thrown, " + quote(message));
143
- } else {
144
- TestRunInfo._brokenAssertion("exception NOT thrown, " + quote(message));
145
- }
146
- }
147
- };
148
-
149
- /**
150
- Expect given number of assertions
151
-
152
- @method expect
153
- @memberOf gt
154
- @category Test
155
- */
156
- PrimaryAssertions.expect = function (numberOfAssertions) {
157
- check.verify.object(TestRunInfo._currentTest, "current test is undefined");
158
- console.assert(numberOfAssertions >= 0, "invalid number of expected assertion", numberOfAssertions,
159
- "test", TestRunInfo._currentTest.name);
160
- TestRunInfo._currentTest.expected = numberOfAssertions;
161
- };
162
-
163
- module.exports = PrimaryAssertions;
@@ -1,262 +0,0 @@
1
- var TestRunInfo = require('../TestRunInfo').TestRunInfo;
2
- var joinArguments = require('../utils/joinArguments');
3
- var check = require('check-types');
4
- var verify = check.verify;
5
- var spawn = require('child_process').spawn;
6
-
7
- // returns total execution time
8
- function timeCode(code, n) {
9
- verify.fn(code, 'missing code to time');
10
- verify.positiveNumber(n, 'incorrect number of times to execute', n);
11
- var start = new Date();
12
- var k = n;
13
- for(; k > 0; k -= 1) {
14
- code();
15
- }
16
- var end = new Date();
17
- return end - start;
18
- }
19
-
20
- var SecondaryAssertions = {
21
- /**
22
- Asserts the two functions return same result for every
23
- input in the list.
24
-
25
- @method sameResults
26
- @memberOf gt
27
- @category Secondary assertions
28
- */
29
- sameResults: function (f1, f2, inputs, message) {
30
- verify.fn(f1, 'missing first function');
31
- verify.fn(f2, 'missing second function');
32
- verify.array(inputs, 'inputs should be a array');
33
- if (!check.string(message)) {
34
- message = f1.name + ' vs ' + f2.name;
35
- }
36
- console.assert(inputs.length > 0, 'empty inputs array');
37
- inputs.forEach(function (args) {
38
- gt.equal(f1.call(null, args), f2.call(null, args),
39
- message + ' with inputs ' + args.join(' '));
40
- });
41
- },
42
-
43
- deferCall: function(fn) {
44
- verify.fn(fn, 'expected a function');
45
- var args = Array.prototype.slice.call(arguments, 1);
46
- return function() {
47
- return fn.apply(null, args);
48
- };
49
- },
50
-
51
- /**
52
- Asserts the given function runs faster than specified limit.
53
-
54
- @method faster
55
- @memberOf gt
56
- @category Performance assertions
57
- */
58
- faster: function (name, code, n, limitMs) {
59
- verify.string(name, 'name should be a string');
60
- verify.fn(code, 'missing function code');
61
- if (check.positiveNumber(n) && !limitMs) {
62
- limitMs = n;
63
- n = 1;
64
- }
65
- verify.positiveNumber(n, 'incorrect number of times to execute', n);
66
- verify.positiveNumber(limitMs, 'missing limit ms', limitMs);
67
-
68
- var time = timeCode(code, n);
69
- gt.ok(time < limitMs, name + ' ' + n + ' time(s) took '
70
- + time + 'ms exceeded ' + limitMs + 'ms limit');
71
- },
72
-
73
- /**
74
- Asserts the first function runs faster than the second.
75
-
76
- @method fasterThan
77
- @memberOf gt
78
- @category Performance assertions
79
- */
80
- fasterThan: function (name, f1, f2, n) {
81
- verify.string(name, 'name should be a string');
82
- verify.fn(f1, 'missing first function');
83
- verify.fn(f2, 'missing second function');
84
- if (!check.positiveNumber(n)) {
85
- n = 1;
86
- }
87
- var time1 = timeCode(f1, n);
88
- var time2 = timeCode(f2, n);
89
- gt.ok(time1 < time2, name + ' first function is slower than second, ' +
90
- time1 + 'ms vs ' + time2 + 'ms on ' + n + ' runs');
91
- },
92
-
93
- /**
94
- Asserts that given value is defined
95
-
96
- @method defined
97
- @memberOf gt
98
- @category Type assertions
99
- */
100
- defined: function (value) {
101
- var message = joinArguments(arguments, 1);
102
- this.ok(typeof value !== 'undefined', message);
103
- },
104
-
105
- /**
106
- Asserts that given value is undefined
107
-
108
- @method undefined
109
- @memberOf gt
110
- @category Type assertions
111
- */
112
- undefined: function (value) {
113
- var message = joinArguments(arguments, 1);
114
- this.equal(typeof value, 'undefined', message);
115
- },
116
-
117
- /**
118
- Asserts that given value is null
119
-
120
- @method null
121
- @memberOf gt
122
- @category Type assertions
123
- */
124
- null: function (value) {
125
- var message = joinArguments(arguments, 1);
126
- this.equal(value, null, message);
127
- },
128
-
129
- /**
130
- Asserts the given value is a function
131
-
132
- @method func
133
- @memberOf gt
134
- @category Type assertions
135
- */
136
- func: function (f) {
137
- var message = joinArguments(arguments, 1);
138
- // console.log(message);
139
- this.equal(typeof f, 'function', message);
140
- },
141
-
142
- /**
143
- Asserts given value is an object
144
-
145
- @method object
146
- @memberOf gt
147
- @category Type assertions
148
- */
149
- object: function (o) {
150
- var message = joinArguments(arguments, 1);
151
- this.equal(typeof o, 'object', message);
152
- },
153
-
154
- /**
155
- Asserts given value is an array
156
-
157
- @method array
158
- @memberOf gt
159
- @category Type assertions
160
- */
161
- array: function (array) {
162
- var message = joinArguments(arguments, 1) || 'checking if ' + array + ' is an array';
163
- this.ok(Array.isArray(array), message);
164
- },
165
-
166
- /**
167
- Asserts given value is a function that takes in specified
168
- number of arguments
169
-
170
- @method arity
171
- @memberOf gt
172
- @category Secondary assertions
173
- */
174
- arity: function (f, n, message) {
175
- verify.object(TestRunInfo, 'missing test run info');
176
- verify.object(TestRunInfo._currentTest, "current test is undefined");
177
- this.func(f, message);
178
- if (TestRunInfo._currentTest.expected) {
179
- TestRunInfo._currentTest.expected += 1;
180
- }
181
- this.equal(f.length, n, message);
182
- },
183
-
184
- /**
185
- Asserts exit code from an external process.
186
-
187
- @method exec
188
- @memberOf gt
189
- @category Secondary assertions
190
- */
191
- exec: function (command, args, expectedExitCode, message) {
192
- verify.object(TestRunInfo._currentTest, "current test is undefined");
193
- verify.string(command, 'command should be a string');
194
- if (!Array.isArray(args)) {
195
- message = expectedExitCode;
196
- expectedExitCode = args;
197
- args = [];
198
- }
199
- if (check.string(expectedExitCode)) {
200
- message = expectedExitCode;
201
- expectedExitCode = 0;
202
- }
203
- if (typeof expectedExitCode === 'undefined') {
204
- expectedExitCode = 0;
205
- }
206
- console.assert(expectedExitCode >= 0, 'invalid expected exit code', expectedExitCode);
207
-
208
- // throw new Error('gt.exec is not implemented yet');
209
- var program = spawn(command, args);
210
- var stdout = '', stderr = '';
211
- program.stdout.setEncoding('utf-8');
212
- program.stderr.setEncoding('utf-8');
213
- program.stdout.on('data', function (data) {
214
- stdout += data;
215
- console.log('exec:', data.trim());
216
- });
217
- program.stderr.on('data', function (data) {
218
- stderr += data;
219
- console.log('exec err:', data.trim());
220
- });
221
- program.on('exit', function (code) {
222
- console.log('exec exit code:', code);
223
- if (!message || check.string(message)) {
224
- gt.equal(code, expectedExitCode, message);
225
- } else {
226
- gt.equal(code, expectedExitCode);
227
- check.verify.fn(message, 'expected callback function');
228
- message(stdout, stderr);
229
- }
230
- gt.start();
231
- });
232
- },
233
-
234
- /**
235
- Asserts given code raises AssertionError
236
-
237
- @method raisesAssertion
238
- @memberOf gt
239
- @category Secondary assertions
240
- */
241
- raisesAssertion: function (code, message) {
242
- this.raises(code, 'AssertionError', message);
243
- },
244
-
245
- /**
246
- Asserts given code raises ReferenceError
247
-
248
- @method raisesReference
249
- @memberOf gt
250
- @category Secondary assertions
251
- */
252
- raisesReference: function (code, message) {
253
- this.raises(code, 'ReferenceError', message);
254
- }
255
- };
256
-
257
- SecondaryAssertions.secondary = function () {
258
- var names = Object.keys(SecondaryAssertions);
259
- return names;
260
- };
261
-
262
- module.exports = SecondaryAssertions;