@cloudbase/oauth 0.1.1-alpha → 0.1.1-alpha.2

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 (332) hide show
  1. package/Dockerfile +15 -0
  2. package/README.md +1 -1
  3. package/_exmaple/assets/scripts/function/function.ts +99 -0
  4. package/_exmaple/assets/scripts/index.ts +99 -0
  5. package/_exmaple/assets/scripts/request.ts +11 -0
  6. package/_exmaple/index.html +15 -0
  7. package/_exmaple/package.json +33 -0
  8. package/_exmaple/tsconfig.json +71 -0
  9. package/_exmaple/typings.d.ts +0 -0
  10. package/_exmaple/webpack.config.js +42 -0
  11. package/cdnjs/1.0.0/cloudbase.auth.js +1 -0
  12. package/cdnjs/1.0.0/cloudbase.database.js +8 -0
  13. package/cdnjs/1.0.0/cloudbase.full.js +8 -0
  14. package/cdnjs/1.0.0/cloudbase.functions.js +1 -0
  15. package/cdnjs/1.0.0/cloudbase.js +1 -0
  16. package/cdnjs/1.0.0/cloudbase.storage.js +1 -0
  17. package/cdnjs/1.0.1/cloudbase.auth.js +1 -0
  18. package/cdnjs/1.0.1/cloudbase.database.js +8 -0
  19. package/cdnjs/1.0.1/cloudbase.full.js +8 -0
  20. package/cdnjs/1.0.1/cloudbase.functions.js +1 -0
  21. package/cdnjs/1.0.1/cloudbase.js +1 -0
  22. package/cdnjs/1.0.1/cloudbase.storage.js +1 -0
  23. package/cdnjs/1.0.2/cloudbase.auth.js +1 -0
  24. package/cdnjs/1.0.2/cloudbase.database.js +8 -0
  25. package/cdnjs/1.0.2/cloudbase.full.js +8 -0
  26. package/cdnjs/1.0.2/cloudbase.functions.js +1 -0
  27. package/cdnjs/1.0.2/cloudbase.js +1 -0
  28. package/cdnjs/1.0.2/cloudbase.storage.js +1 -0
  29. package/cdnjs/1.0.3/cloudbase.auth.js +1 -0
  30. package/cdnjs/1.0.3/cloudbase.database.js +8 -0
  31. package/cdnjs/1.0.3/cloudbase.full.js +8 -0
  32. package/cdnjs/1.0.3/cloudbase.functions.js +1 -0
  33. package/cdnjs/1.0.3/cloudbase.js +1 -0
  34. package/cdnjs/1.0.3/cloudbase.storage.js +1 -0
  35. package/cdnjs/1.0.4/cloudbase.auth.js +1 -0
  36. package/cdnjs/1.0.4/cloudbase.database.js +8 -0
  37. package/cdnjs/1.0.4/cloudbase.full.js +8 -0
  38. package/cdnjs/1.0.4/cloudbase.functions.js +1 -0
  39. package/cdnjs/1.0.4/cloudbase.js +1 -0
  40. package/cdnjs/1.0.4/cloudbase.storage.js +1 -0
  41. package/cdnjs/1.1.0/cloudbase.auth.js +1 -0
  42. package/cdnjs/1.1.0/cloudbase.database.js +8 -0
  43. package/cdnjs/1.1.0/cloudbase.full.js +8 -0
  44. package/cdnjs/1.1.0/cloudbase.functions.js +1 -0
  45. package/cdnjs/1.1.0/cloudbase.js +1 -0
  46. package/cdnjs/1.1.0/cloudbase.storage.js +1 -0
  47. package/cdnjs/1.1.1/cloudbase.auth.js +1 -0
  48. package/cdnjs/1.1.1/cloudbase.database.js +8 -0
  49. package/cdnjs/1.1.1/cloudbase.full.js +8 -0
  50. package/cdnjs/1.1.1/cloudbase.functions.js +1 -0
  51. package/cdnjs/1.1.1/cloudbase.js +1 -0
  52. package/cdnjs/1.1.1/cloudbase.storage.js +1 -0
  53. package/cdnjs/1.1.2/cloudbase.auth.js +1 -0
  54. package/cdnjs/1.1.2/cloudbase.database.js +8 -0
  55. package/cdnjs/1.1.2/cloudbase.full.js +8 -0
  56. package/cdnjs/1.1.2/cloudbase.functions.js +1 -0
  57. package/cdnjs/1.1.2/cloudbase.js +1 -0
  58. package/cdnjs/1.1.2/cloudbase.storage.js +1 -0
  59. package/cdnjs/1.1.3/cloudbase.auth.js +1 -0
  60. package/cdnjs/1.1.3/cloudbase.database.js +8 -0
  61. package/cdnjs/1.1.3/cloudbase.full.js +8 -0
  62. package/cdnjs/1.1.3/cloudbase.functions.js +1 -0
  63. package/cdnjs/1.1.3/cloudbase.js +1 -0
  64. package/cdnjs/1.1.3/cloudbase.storage.js +1 -0
  65. package/cdnjs/1.1.4/cloudbase.auth.js +1 -0
  66. package/cdnjs/1.1.4/cloudbase.database.js +8 -0
  67. package/cdnjs/1.1.4/cloudbase.full.js +8 -0
  68. package/cdnjs/1.1.4/cloudbase.functions.js +1 -0
  69. package/cdnjs/1.1.4/cloudbase.js +1 -0
  70. package/cdnjs/1.1.4/cloudbase.storage.js +1 -0
  71. package/cdnjs/1.2.1/cloudbase.auth.js +1 -0
  72. package/cdnjs/1.2.1/cloudbase.database.js +8 -0
  73. package/cdnjs/1.2.1/cloudbase.full.js +8 -0
  74. package/cdnjs/1.2.1/cloudbase.functions.js +1 -0
  75. package/cdnjs/1.2.1/cloudbase.js +1 -0
  76. package/cdnjs/1.2.1/cloudbase.storage.js +1 -0
  77. package/cdnjs/1.2.2/cloudbase.auth.js +1 -0
  78. package/cdnjs/1.2.2/cloudbase.database.js +8 -0
  79. package/cdnjs/1.2.2/cloudbase.full.js +8 -0
  80. package/cdnjs/1.2.2/cloudbase.functions.js +1 -0
  81. package/cdnjs/1.2.2/cloudbase.js +1 -0
  82. package/cdnjs/1.2.2/cloudbase.storage.js +1 -0
  83. package/cdnjs/1.2.3/cloudbase.auth.js +1 -0
  84. package/cdnjs/1.2.3/cloudbase.database.js +8 -0
  85. package/cdnjs/1.2.3/cloudbase.full.js +8 -0
  86. package/cdnjs/1.2.3/cloudbase.functions.js +1 -0
  87. package/cdnjs/1.2.3/cloudbase.js +1 -0
  88. package/cdnjs/1.2.3/cloudbase.storage.js +1 -0
  89. package/cdnjs/1.3.0/cloudbase.auth.js +1 -0
  90. package/cdnjs/1.3.0/cloudbase.database.js +8 -0
  91. package/cdnjs/1.3.0/cloudbase.full.js +8 -0
  92. package/cdnjs/1.3.0/cloudbase.functions.js +1 -0
  93. package/cdnjs/1.3.0/cloudbase.js +1 -0
  94. package/cdnjs/1.3.0/cloudbase.realtime.js +1 -0
  95. package/cdnjs/1.3.0/cloudbase.storage.js +1 -0
  96. package/cdnjs/1.3.1/cloudbase.auth.js +1 -0
  97. package/cdnjs/1.3.1/cloudbase.database.js +8 -0
  98. package/cdnjs/1.3.1/cloudbase.full.js +8 -0
  99. package/cdnjs/1.3.1/cloudbase.functions.js +1 -0
  100. package/cdnjs/1.3.1/cloudbase.js +1 -0
  101. package/cdnjs/1.3.1/cloudbase.realtime.js +1 -0
  102. package/cdnjs/1.3.1/cloudbase.storage.js +1 -0
  103. package/cdnjs/1.3.2/cloudbase.auth.js +1 -0
  104. package/cdnjs/1.3.2/cloudbase.database.js +8 -0
  105. package/cdnjs/1.3.2/cloudbase.full.js +8 -0
  106. package/cdnjs/1.3.2/cloudbase.functions.js +1 -0
  107. package/cdnjs/1.3.2/cloudbase.js +1 -0
  108. package/cdnjs/1.3.2/cloudbase.realtime.js +1 -0
  109. package/cdnjs/1.3.2/cloudbase.storage.js +1 -0
  110. package/cdnjs/1.3.3/cloudbase.auth.js +1 -0
  111. package/cdnjs/1.3.3/cloudbase.database.js +8 -0
  112. package/cdnjs/1.3.3/cloudbase.full.js +8 -0
  113. package/cdnjs/1.3.3/cloudbase.functions.js +1 -0
  114. package/cdnjs/1.3.3/cloudbase.js +1 -0
  115. package/cdnjs/1.3.3/cloudbase.realtime.js +1 -0
  116. package/cdnjs/1.3.3/cloudbase.storage.js +1 -0
  117. package/cdnjs/1.3.4-alpha.0/cloudbase.auth.js +1 -0
  118. package/cdnjs/1.3.4-alpha.0/cloudbase.database.js +8 -0
  119. package/cdnjs/1.3.4-alpha.0/cloudbase.full.js +8 -0
  120. package/cdnjs/1.3.4-alpha.0/cloudbase.functions.js +1 -0
  121. package/cdnjs/1.3.4-alpha.0/cloudbase.js +1 -0
  122. package/cdnjs/1.3.4-alpha.0/cloudbase.realtime.js +1 -0
  123. package/cdnjs/1.3.4-alpha.0/cloudbase.storage.js +1 -0
  124. package/cdnjs/1.3.5/cloudbase.analytics.js +1 -0
  125. package/cdnjs/1.3.5/cloudbase.auth.js +1 -0
  126. package/cdnjs/1.3.5/cloudbase.database.js +10 -0
  127. package/cdnjs/1.3.5/cloudbase.full.js +10 -0
  128. package/cdnjs/1.3.5/cloudbase.functions.js +1 -0
  129. package/cdnjs/1.3.5/cloudbase.js +1 -0
  130. package/cdnjs/1.3.5/cloudbase.realtime.js +1 -0
  131. package/cdnjs/1.3.5/cloudbase.storage.js +1 -0
  132. package/cdnjs/1.3.5-alpha.0/cloudbase.auth.js +1 -0
  133. package/cdnjs/1.3.5-alpha.0/cloudbase.database.js +10 -0
  134. package/cdnjs/1.3.5-alpha.0/cloudbase.full.js +10 -0
  135. package/cdnjs/1.3.5-alpha.0/cloudbase.functions.js +1 -0
  136. package/cdnjs/1.3.5-alpha.0/cloudbase.js +1 -0
  137. package/cdnjs/1.3.5-alpha.0/cloudbase.realtime.js +1 -0
  138. package/cdnjs/1.3.5-alpha.0/cloudbase.storage.js +1 -0
  139. package/cdnjs/1.4.0/cloudbase.analytics.js +1 -0
  140. package/cdnjs/1.4.0/cloudbase.auth.js +1 -0
  141. package/cdnjs/1.4.0/cloudbase.database.js +10 -0
  142. package/cdnjs/1.4.0/cloudbase.full.js +10 -0
  143. package/cdnjs/1.4.0/cloudbase.functions.js +1 -0
  144. package/cdnjs/1.4.0/cloudbase.js +1 -0
  145. package/cdnjs/1.4.0/cloudbase.realtime.js +1 -0
  146. package/cdnjs/1.4.0/cloudbase.storage.js +1 -0
  147. package/cdnjs/1.4.1/cloudbase.analytics.js +1 -0
  148. package/cdnjs/1.4.1/cloudbase.auth.js +1 -0
  149. package/cdnjs/1.4.1/cloudbase.database.js +10 -0
  150. package/cdnjs/1.4.1/cloudbase.full.js +10 -0
  151. package/cdnjs/1.4.1/cloudbase.functions.js +1 -0
  152. package/cdnjs/1.4.1/cloudbase.js +1 -0
  153. package/cdnjs/1.4.1/cloudbase.realtime.js +1 -0
  154. package/cdnjs/1.4.1/cloudbase.storage.js +1 -0
  155. package/cdnjs/1.4.1-alpha.0/cloudbase.analytics.js +1 -0
  156. package/cdnjs/1.4.1-alpha.0/cloudbase.auth.js +1 -0
  157. package/cdnjs/1.4.1-alpha.0/cloudbase.database.js +10 -0
  158. package/cdnjs/1.4.1-alpha.0/cloudbase.full.js +10 -0
  159. package/cdnjs/1.4.1-alpha.0/cloudbase.functions.js +1 -0
  160. package/cdnjs/1.4.1-alpha.0/cloudbase.js +1 -0
  161. package/cdnjs/1.4.1-alpha.0/cloudbase.realtime.js +1 -0
  162. package/cdnjs/1.4.1-alpha.0/cloudbase.storage.js +1 -0
  163. package/cdnjs/1.4.2-alpha.0/cloudbase.analytics.js +1 -0
  164. package/cdnjs/1.4.2-alpha.0/cloudbase.auth.js +1 -0
  165. package/cdnjs/1.4.2-alpha.0/cloudbase.database.js +10 -0
  166. package/cdnjs/1.4.2-alpha.0/cloudbase.full.js +10 -0
  167. package/cdnjs/1.4.2-alpha.0/cloudbase.functions.js +1 -0
  168. package/cdnjs/1.4.2-alpha.0/cloudbase.js +1 -0
  169. package/cdnjs/1.4.2-alpha.0/cloudbase.realtime.js +1 -0
  170. package/cdnjs/1.4.2-alpha.0/cloudbase.storage.js +1 -0
  171. package/cdnjs/1.5.0/cloudbase.analytics.js +1 -0
  172. package/cdnjs/1.5.0/cloudbase.auth.js +1 -0
  173. package/cdnjs/1.5.0/cloudbase.database.js +10 -0
  174. package/cdnjs/1.5.0/cloudbase.full.js +10 -0
  175. package/cdnjs/1.5.0/cloudbase.functions.js +1 -0
  176. package/cdnjs/1.5.0/cloudbase.js +1 -0
  177. package/cdnjs/1.5.0/cloudbase.realtime.js +1 -0
  178. package/cdnjs/1.5.0/cloudbase.storage.js +1 -0
  179. package/cdnjs/1.5.1/cloudbase.analytics.js +1 -0
  180. package/cdnjs/1.5.1/cloudbase.auth.js +1 -0
  181. package/cdnjs/1.5.1/cloudbase.database.js +26 -0
  182. package/cdnjs/1.5.1/cloudbase.full.js +26 -0
  183. package/cdnjs/1.5.1/cloudbase.functions.js +1 -0
  184. package/cdnjs/1.5.1/cloudbase.js +1 -0
  185. package/cdnjs/1.5.1/cloudbase.realtime.js +1 -0
  186. package/cdnjs/1.5.1/cloudbase.storage.js +1 -0
  187. package/cdnjs/1.5.1-alpha.0/cloudbase.analytics.js +1 -0
  188. package/cdnjs/1.5.1-alpha.0/cloudbase.auth.js +1 -0
  189. package/cdnjs/1.5.1-alpha.0/cloudbase.database.js +10 -0
  190. package/cdnjs/1.5.1-alpha.0/cloudbase.full.js +10 -0
  191. package/cdnjs/1.5.1-alpha.0/cloudbase.functions.js +1 -0
  192. package/cdnjs/1.5.1-alpha.0/cloudbase.js +1 -0
  193. package/cdnjs/1.5.1-alpha.0/cloudbase.realtime.js +1 -0
  194. package/cdnjs/1.5.1-alpha.0/cloudbase.storage.js +1 -0
  195. package/cdnjs/1.5.3-alpha.0/cloudbase.analytics.js +1 -0
  196. package/cdnjs/1.5.3-alpha.0/cloudbase.auth.js +1 -0
  197. package/cdnjs/1.5.3-alpha.0/cloudbase.database.js +26 -0
  198. package/cdnjs/1.5.3-alpha.0/cloudbase.full.js +26 -0
  199. package/cdnjs/1.5.3-alpha.0/cloudbase.functions.js +1 -0
  200. package/cdnjs/1.5.3-alpha.0/cloudbase.js +1 -0
  201. package/cdnjs/1.5.3-alpha.0/cloudbase.realtime.js +1 -0
  202. package/cdnjs/1.5.3-alpha.0/cloudbase.storage.js +1 -0
  203. package/cdnjs/1.6.0/cloudbase.analytics.js +1 -0
  204. package/cdnjs/1.6.0/cloudbase.auth.js +1 -0
  205. package/cdnjs/1.6.0/cloudbase.database.js +26 -0
  206. package/cdnjs/1.6.0/cloudbase.full.js +26 -0
  207. package/cdnjs/1.6.0/cloudbase.functions.js +1 -0
  208. package/cdnjs/1.6.0/cloudbase.js +1 -0
  209. package/cdnjs/1.6.0/cloudbase.realtime.js +1 -0
  210. package/cdnjs/1.6.0/cloudbase.storage.js +1 -0
  211. package/{CHANGELOG.md → changelog.md} +0 -0
  212. package/dist/README.md +153 -0
  213. package/{app → dist/app}/index.d.ts +1 -0
  214. package/{app → dist/app}/index.js +0 -0
  215. package/dist/app/index.js.map +1 -0
  216. package/{app → dist/app}/internal.d.ts +0 -0
  217. package/{app → dist/app}/internal.js +0 -0
  218. package/{app → dist/app}/internal.js.map +0 -0
  219. package/{app → dist/app}/openuri.d.ts +0 -0
  220. package/{app → dist/app}/openuri.js +2 -1
  221. package/{app → dist/app}/openuri.js.map +1 -1
  222. package/{app → dist/app}/request.d.ts +4 -3
  223. package/{app → dist/app}/request.js +20 -12
  224. package/dist/app/request.js.map +1 -0
  225. package/{app → dist/app}/storage.d.ts +0 -0
  226. package/{app → dist/app}/storage.js +0 -0
  227. package/{app → dist/app}/storage.js.map +0 -0
  228. package/{auth → dist/auth}/consts.d.ts +21 -4
  229. package/{auth → dist/auth}/consts.js +27 -5
  230. package/dist/auth/consts.js.map +1 -0
  231. package/{auth → dist/auth}/index.d.ts +83 -34
  232. package/{auth → dist/auth}/index.js +239 -92
  233. package/dist/auth/index.js.map +1 -0
  234. package/dist/auth/models.d.ts +284 -0
  235. package/{oauthclient → dist/auth}/models.js +1 -0
  236. package/dist/auth/models.js.map +1 -0
  237. package/{captcha → dist/captcha}/index.d.ts +0 -0
  238. package/{captcha → dist/captcha}/index.js +4 -2
  239. package/dist/captcha/index.js.map +1 -0
  240. package/dist/changelog.md +30 -0
  241. package/dist/function/index.d.ts +38 -0
  242. package/dist/function/index.js +80 -0
  243. package/dist/function/index.js.map +1 -0
  244. package/dist/index.d.ts +14 -0
  245. package/dist/index.js +24 -0
  246. package/dist/index.js.map +1 -0
  247. package/{oauthclient → dist/oauthclient}/consts.d.ts +0 -0
  248. package/{oauthclient → dist/oauthclient}/consts.js +0 -0
  249. package/{oauthclient → dist/oauthclient}/consts.js.map +0 -0
  250. package/{oauthclient → dist/oauthclient}/index.d.ts +0 -0
  251. package/{oauthclient → dist/oauthclient}/index.js +2 -2
  252. package/dist/oauthclient/index.js.map +1 -0
  253. package/{oauthclient → dist/oauthclient}/interface.d.ts +4 -0
  254. package/{oauthclient → dist/oauthclient}/interface.js +0 -0
  255. package/{oauthclient → dist/oauthclient}/interface.js.map +1 -1
  256. package/{oauthclient → dist/oauthclient}/models.d.ts +12 -11
  257. package/{auth → dist/oauthclient}/models.js +0 -0
  258. package/{oauthclient → dist/oauthclient}/models.js.map +0 -0
  259. package/{oauthclient → dist/oauthclient}/oauthclient.d.ts +11 -7
  260. package/{oauthclient → dist/oauthclient}/oauthclient.js +27 -12
  261. package/dist/oauthclient/oauthclient.js.map +1 -0
  262. package/dist/package.json +32 -0
  263. package/{utils/single-promise.d.ts → dist/utils/promise.d.ts} +3 -3
  264. package/{utils/single-promise.js → dist/utils/promise.js} +6 -6
  265. package/dist/utils/promise.js.map +1 -0
  266. package/{utils → dist/utils}/uuid.d.ts +0 -0
  267. package/{utils → dist/utils}/uuid.js +0 -0
  268. package/{utils → dist/utils}/uuid.js.map +0 -0
  269. package/docs/dev.md +71 -0
  270. package/docs/errlog.md +79 -0
  271. package/package.json +3 -2
  272. package/publish.sh +2 -0
  273. package/src/app/index.ts +83 -0
  274. package/src/app/internal.ts +26 -0
  275. package/src/app/openuri.ts +111 -0
  276. package/src/app/request.ts +66 -0
  277. package/src/app/storage.ts +58 -0
  278. package/src/auth/consts.ts +74 -0
  279. package/src/auth/index.ts +718 -0
  280. package/src/auth/models.ts +352 -0
  281. package/src/captcha/index.ts +170 -0
  282. package/src/function/index.ts +103 -0
  283. package/src/index.ts +32 -0
  284. package/src/oauthclient/consts.ts +48 -0
  285. package/src/oauthclient/index.ts +33 -0
  286. package/src/oauthclient/interface.ts +34 -0
  287. package/src/oauthclient/models.ts +50 -0
  288. package/src/oauthclient/oauthclient.ts +487 -0
  289. package/src/utils/promise.ts +41 -0
  290. package/src/utils/uuid.ts +11 -0
  291. package/test/e2e/cases/custom-login.test.js +122 -0
  292. package/test/e2e/cases/index.test.js +61 -0
  293. package/test/e2e/cases/login-state.test.js +89 -0
  294. package/test/e2e/environment.js +39 -0
  295. package/test/e2e/global_setup.js +33 -0
  296. package/test/e2e/global_teardown.js +15 -0
  297. package/test/e2e/setup.js +37 -0
  298. package/test/unit/index.test.js +89 -0
  299. package/test/web/cases/auth/index.js +256 -0
  300. package/test/web/cases/database/collection.js +173 -0
  301. package/test/web/cases/database/command.js +754 -0
  302. package/test/web/cases/database/date.js +122 -0
  303. package/test/web/cases/database/db.js +20 -0
  304. package/test/web/cases/database/document.js +160 -0
  305. package/test/web/cases/database/geo-advanced.js +327 -0
  306. package/test/web/cases/database/geo.js +105 -0
  307. package/test/web/cases/database/index.js +315 -0
  308. package/test/web/cases/database/order.js +83 -0
  309. package/test/web/cases/database/realtime.js +102 -0
  310. package/test/web/cases/database/regex.js +140 -0
  311. package/test/web/cases/ext/index.js +88 -0
  312. package/test/web/cases/function/index.js +77 -0
  313. package/test/web/cases/storage/cos.jpeg +0 -0
  314. package/test/web/cases/storage/index.js +207 -0
  315. package/test/web/index.html +63 -0
  316. package/test/web/index.js +109 -0
  317. package/test/web/util.js +80 -0
  318. package/tsconfig.json +35 -0
  319. package/wiki/README.md +75 -0
  320. package/app/index.js.map +0 -1
  321. package/app/request.js.map +0 -1
  322. package/auth/consts.js.map +0 -1
  323. package/auth/index.js.map +0 -1
  324. package/auth/models.d.ts +0 -158
  325. package/auth/models.js.map +0 -1
  326. package/captcha/index.js.map +0 -1
  327. package/index.d.ts +0 -8
  328. package/index.js +0 -17
  329. package/index.js.map +0 -1
  330. package/oauthclient/index.js.map +0 -1
  331. package/oauthclient/oauthclient.js.map +0 -1
  332. package/utils/single-promise.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ // database geo
2
+ import * as assert from 'power-assert';
3
+ import { catchCallback, isSuccess, callbackWithTryCatch } from '../../util';
4
+ import { registerCase } from '.';
5
+
6
+ export function registerGeo(app, collName) {
7
+ const db = app.database();
8
+ const collection = db.collection(collName);
9
+ // const nameList = ["f", "b", "e", "d", "a", "c"];
10
+
11
+ const longitude = -180;
12
+ const latitude = 20;
13
+ const point = new db.Geo.Point(longitude, latitude);
14
+ const initialData = {
15
+ point,
16
+ pointArr: [point, point, point],
17
+ uuid: '416a4700-e0d3-11e8-911a-8888888888',
18
+ string: '新增单个string字段1。新增单个string字段1。',
19
+ due: new Date('2018-09-01'),
20
+ int: 100,
21
+ geo: new db.Geo.Point(90, 23),
22
+ array: [
23
+ {
24
+ string: '99999999',
25
+ due: new Date('2018-09-01'),
26
+ geo: new db.Geo.Point(90, 23),
27
+ },
28
+ {
29
+ string: '0000000',
30
+ geo: new db.Geo.Point(90, 23),
31
+ null: null,
32
+ }
33
+ ],
34
+ };
35
+ registerCase('database geo: GEO Point - CRUD', async () => {
36
+ await new Promise(async resolve => {
37
+ try {
38
+ // Create
39
+ let res = await collection.add(initialData).catch(callbackWithTryCatch(err => {
40
+ assert(false, { err });
41
+ }, () => {
42
+ resolve();
43
+ }));
44
+ assert(isSuccess(0, res) && res.id, { res });
45
+
46
+ const res2 = await collection.doc(res.id).set(initialData).catch(callbackWithTryCatch(err => {
47
+ assert(false, { err });
48
+ }, () => {
49
+ resolve();
50
+ }));
51
+ assert(isSuccess(0, res2) && res2.updated >= 1, { res: res2 });
52
+
53
+ // Read
54
+ let result = await collection
55
+ .where({
56
+ _id: res.id
57
+ })
58
+ .get().catch(callbackWithTryCatch(err => {
59
+ assert(false, { err });
60
+ }, () => {
61
+ resolve();
62
+ }));
63
+ assert(isSuccess(0, result) && result.data.length > 0, { res: result });
64
+ assert.deepEqual(result.data[0].point, { longitude, latitude });
65
+
66
+ // TODO: 现在对 GEO 进行 $eq 操作,小概率会查不到,需要修改查询的底层结构
67
+ // result = await collection
68
+ // .where({
69
+ // point: db.command.eq(point)
70
+ // })
71
+ // .get();
72
+ // console.log(point, result);
73
+ // assert(result.data.length > 0);
74
+
75
+ // result = await collection
76
+ // .where({
77
+ // point: db.command.or(db.command.eq(point))
78
+ // })
79
+ // .get();
80
+ // console.log(point, result);
81
+ // assert(result.data.length > 0);
82
+
83
+ // result = await collection
84
+ // .where({
85
+ // point: point
86
+ // })
87
+ // .get();
88
+ // console.log(result);
89
+ // assert(result.data.length > 0);
90
+
91
+ // Delete
92
+ const deleteRes = await collection
93
+ .where({
94
+ _id: res.id
95
+ })
96
+ .remove();
97
+ assert(isSuccess(0, deleteRes) && deleteRes.deleted === 1, { res: deleteRes });
98
+ } catch (e) {
99
+ catchCallback(e);
100
+ } finally {
101
+ resolve();
102
+ }
103
+ });
104
+ });
105
+ }
@@ -0,0 +1,315 @@
1
+ // database
2
+ import * as assert from 'power-assert';
3
+
4
+ import {
5
+ register,
6
+ isSuccess,
7
+ catchCallback,
8
+ callbackWithTryCatch
9
+ } from '../../util';
10
+
11
+ import { registerCollection } from './collection';
12
+ import { registerCommand } from './command';
13
+ import { registerDate } from './date';
14
+ import { registerDb } from './db';
15
+ import { registerDocument } from './document';
16
+ import { registerGeo } from './geo';
17
+ import { registerGeoAdvanced } from './geo-advanced';
18
+ import { registerOrder } from './order';
19
+ import { registerRegex } from './regex';
20
+ import { registerRealtime } from './realtime';
21
+
22
+ export function registerCase(msg,fn){
23
+ register('database',msg,fn);
24
+ }
25
+
26
+ export async function registerDatabaseCases(app) {
27
+ const collName = 'coll-1';
28
+
29
+ registerCollection(app, collName);
30
+ registerCommand(app, collName);
31
+ registerDate(app, collName);
32
+ registerDb(app, collName);
33
+ registerDocument(app, collName);
34
+ registerGeo(app, collName);
35
+ registerGeoAdvanced(app, collName);
36
+ registerOrder(app, collName);
37
+ registerRegex(app, collName);
38
+ registerRealtime(app, collName);
39
+
40
+ registerCase('Document - CRUD', async () => {
41
+ // await new Promise(async resolve => {
42
+ // try {
43
+ const db = app.database();
44
+ const _ = db.command;
45
+ const collection = db.collection(collName);
46
+ const initialData = {
47
+ name: 'aaa',
48
+ array: [
49
+ 1,
50
+ 2,
51
+ 3,
52
+ [4, 5, 6],
53
+ { a: 1, b: { c: 'fjasklfljkas', d: false }}
54
+ ],
55
+ data: {
56
+ a: 'a',
57
+ b: 'b',
58
+ c: 'c'
59
+ },
60
+ null: null,
61
+ deepObject: {
62
+ 'l-02-01': {
63
+ 'l-03-01': {
64
+ 'l-04-01': {
65
+ level: 1,
66
+ name: 'l-01',
67
+ flag: '0'
68
+ }
69
+ }
70
+ }
71
+ }
72
+ };
73
+
74
+ // Create
75
+ let res = await collection.add(initialData).catch(
76
+ callbackWithTryCatch(
77
+ err => {
78
+ assert(false, { err });
79
+ },
80
+ () => {
81
+ resolve();
82
+ }
83
+ )
84
+ );
85
+ assert(isSuccess(0, res) && res.id, { res });
86
+
87
+ // Read
88
+ const { id } = res;
89
+ res = await collection
90
+ .where({
91
+ _id: id
92
+ })
93
+ .get()
94
+ .catch(
95
+ callbackWithTryCatch(
96
+ err => {
97
+ assert(false, { err });
98
+ },
99
+ () => {
100
+ resolve();
101
+ }
102
+ )
103
+ );
104
+ assert.deepStrictEqual(res.data[0].name, initialData.name, { res });
105
+ assert.deepStrictEqual(res.data[0].array, initialData.array, { res });
106
+ assert.deepStrictEqual(res.data[0].deepObject, initialData.deepObject, {
107
+ res
108
+ });
109
+
110
+ res = await collection
111
+ .where({
112
+ null: _.or(_.eq(null))
113
+ })
114
+ .get()
115
+ .catch(
116
+ callbackWithTryCatch(
117
+ err => {
118
+ assert(false, { err });
119
+ },
120
+ () => {
121
+ resolve();
122
+ }
123
+ )
124
+ );
125
+ assert(res.data.length > 0);
126
+
127
+ const doc = await collection
128
+ .doc(id)
129
+ .get()
130
+ .catch(
131
+ callbackWithTryCatch(
132
+ err => {
133
+ assert(false, { err });
134
+ },
135
+ () => {
136
+ resolve();
137
+ }
138
+ )
139
+ );
140
+ assert.deepStrictEqual(doc.data[0].name, initialData.name, { res });
141
+ assert.deepStrictEqual(doc.data[0].array, initialData.array, { res });
142
+ assert.deepStrictEqual(doc.data[0].deepObject, initialData.deepObject, {
143
+ res
144
+ });
145
+
146
+ // Update
147
+ res = await collection
148
+ .where({
149
+ _id: id
150
+ })
151
+ .update({
152
+ name: 'bbb',
153
+ array: [{ a: 1, b: 2, c: 3 }]
154
+ })
155
+ .catch(
156
+ callbackWithTryCatch(
157
+ err => {
158
+ assert(false, { err });
159
+ },
160
+ () => {
161
+ resolve();
162
+ }
163
+ )
164
+ );
165
+ assert(res.updated > 0, { res });
166
+
167
+ res = await collection
168
+ .where({
169
+ _id: id
170
+ })
171
+ .update({
172
+ data: { a: null, b: null, c: null }
173
+ })
174
+ .catch(
175
+ callbackWithTryCatch(
176
+ err => {
177
+ assert(false, { err });
178
+ },
179
+ () => {
180
+ resolve();
181
+ }
182
+ )
183
+ );
184
+ assert(res.updated > 0, { res });
185
+
186
+ res = await collection
187
+ .where({ _id: id })
188
+ .get()
189
+ .catch(
190
+ callbackWithTryCatch(
191
+ err => {
192
+ assert(false, { err });
193
+ },
194
+ () => {
195
+ resolve();
196
+ }
197
+ )
198
+ );
199
+ assert(res.data[0], { res });
200
+ assert.deepStrictEqual(
201
+ res.data[0].data,
202
+ { a: null, b: null, c: null },
203
+ { res }
204
+ );
205
+
206
+ // 数组变为对象,mongo会报错
207
+ res = await collection
208
+ .where({
209
+ _id: id
210
+ })
211
+ .update({
212
+ array: { foo: 'bar' }
213
+ })
214
+ assert.strictEqual(res.code, 'DATABASE_REQUEST_FAILED', { res });
215
+
216
+ res = await collection
217
+ .where({
218
+ _id: id
219
+ })
220
+ .get()
221
+ .catch(
222
+ callbackWithTryCatch(
223
+ err => {
224
+ assert(false, { err });
225
+ },
226
+ () => {
227
+ resolve();
228
+ }
229
+ )
230
+ );
231
+ assert.deepStrictEqual(res.data[0].array, [{ a: 1, b: 2, c: 3 }], {
232
+ res
233
+ });
234
+
235
+ // Delete
236
+ const deleteRes = await collection
237
+ .doc(id)
238
+ .remove()
239
+ .catch(
240
+ callbackWithTryCatch(
241
+ err => {
242
+ assert(false, { err });
243
+ },
244
+ () => {
245
+ resolve();
246
+ }
247
+ )
248
+ );
249
+ assert.strictEqual(deleteRes.deleted, 1, { res });
250
+ // } catch (e) {
251
+ // catchCallback(e);
252
+ // } finally {
253
+ // resolve();
254
+ // }
255
+ // });
256
+ });
257
+
258
+ registerCase('Document - query', async () => {
259
+ await new Promise(async resolve => {
260
+ try {
261
+ const db = app.database();
262
+ const _ = db.command;
263
+ const collection = db.collection(collName);
264
+
265
+ // Query
266
+ await Promise.all([
267
+ collection.add({ a: 1, b: 100 }).catch(
268
+ callbackWithTryCatch(err => {
269
+ assert(false, { err });
270
+ })
271
+ ),
272
+ collection.add({ a: 10, b: 1 }).catch(
273
+ callbackWithTryCatch(err => {
274
+ assert(false, { err });
275
+ })
276
+ )
277
+ ]);
278
+
279
+ const query = _.or([
280
+ { b: _.and(_.gte(1), _.lte(10)) },
281
+ { b: _.and(_.gt(99), _.lte(101)) }
282
+ ]);
283
+ let res = await collection
284
+ .where(query)
285
+ .get()
286
+ .catch(
287
+ callbackWithTryCatch(err => {
288
+ assert(false, { err });
289
+ })
290
+ );
291
+ assert(isSuccess(0, res) && res.data.length >= 2, { res });
292
+
293
+ // Delete
294
+ res = await collection
295
+ .where(query)
296
+ .remove()
297
+ .catch(
298
+ callbackWithTryCatch(
299
+ err => {
300
+ assert(false, { err });
301
+ },
302
+ () => {
303
+ resolve();
304
+ }
305
+ )
306
+ );
307
+ assert(isSuccess(0, res) && res.deleted === 2, { res });
308
+ } catch (e) {
309
+ catchCallback(e);
310
+ } finally {
311
+ resolve();
312
+ }
313
+ });
314
+ });
315
+ }
@@ -0,0 +1,83 @@
1
+ // database order
2
+ import * as assert from 'power-assert';
3
+ import { catchCallback, isSuccess, callbackWithTryCatch } from '../../util';
4
+ import { registerCase } from '.';
5
+
6
+ export function registerOrder(app, collName) {
7
+ const db = app.database();
8
+ const collection = db.collection(collName);
9
+ // const nameList = ["f", "b", "e", "d", "a", "c"];
10
+
11
+ registerCase('database order: Document - OrderBy', async () => {
12
+ await new Promise(async resolve => {
13
+ try {
14
+ // Create
15
+ for (let i = 0; i < 7; i++) {
16
+ const res = await collection.add({
17
+ category: '类别B',
18
+ value: Math.random()
19
+ }).catch(callbackWithTryCatch(err => {
20
+ assert(false, { err });
21
+ }, () => {
22
+ resolve();
23
+ }));
24
+ assert(isSuccess(0, res) && res.id, { res });
25
+ }
26
+
27
+ for (let i = 0; i < 3; i++) {
28
+ const res = await collection.add({
29
+ category: '类别C',
30
+ value: Math.random()
31
+ }).catch(callbackWithTryCatch(err => {
32
+ assert(false, { err });
33
+ }, () => {
34
+ resolve();
35
+ }));
36
+ assert(isSuccess(0, res) && res.id, { res });
37
+ }
38
+
39
+ await collection.add({
40
+ category: '类别A',
41
+ value: Math.random()
42
+ }).catch(callbackWithTryCatch(err => {
43
+ assert(false, { err });
44
+ }, () => {
45
+ resolve();
46
+ }));
47
+
48
+ // Read
49
+ let result = await collection
50
+ .where({
51
+ category: /^类别/i
52
+ })
53
+ .orderBy('category', 'asc')
54
+ .get().catch(callbackWithTryCatch(err => {
55
+ assert(false, { err });
56
+ }, () => {
57
+ resolve();
58
+ }));
59
+ assert(isSuccess(0, result) && result.data.length >= 11, { res: result });
60
+ assert(isSuccess(0, result) && result.data[0].category === '类别A', { res: result });
61
+ assert(isSuccess(0, result) && result.data[result.data.length - 1].category === '类别C', { res: result });
62
+
63
+ // Delete
64
+ const deleteRes = await collection
65
+ .where({
66
+ category: db.RegExp({
67
+ regexp: '^类别'
68
+ })
69
+ })
70
+ .remove().catch(callbackWithTryCatch(err => {
71
+ assert(false, { err });
72
+ }, () => {
73
+ resolve();
74
+ }));
75
+ assert(isSuccess(0, deleteRes) && deleteRes.deleted >= 11, { res: deleteRes });
76
+ } catch (e) {
77
+ catchCallback(e);
78
+ } finally {
79
+ resolve();
80
+ }
81
+ });
82
+ });
83
+ }
@@ -0,0 +1,102 @@
1
+ import * as assert from 'power-assert';
2
+ import { isSuccess } from '../../util';
3
+ import { registerCase } from '.';
4
+
5
+ export function registerRealtime(app, collName) {
6
+ const db = app.database();
7
+
8
+ const _ = db.command;
9
+
10
+ // collName = "coll-1"
11
+ const collection = db.collection(collName);
12
+
13
+ const nextEventNum = 2;
14
+
15
+ let ref;
16
+
17
+ // auth
18
+ registerCase('database realtime: data ready first', async () => {
19
+ await collection.add({ test: 2 });
20
+ await collection.add({ test: 4 });
21
+ document.getElementById('mockAddDoc').onclick = async function() {
22
+ // mock新增数据
23
+ let calNum = nextEventNum;
24
+ while (calNum--) {
25
+ let res = await collection.add({ test: 10 });
26
+ console.log(res);
27
+ assert(res.id);
28
+ }
29
+ };
30
+ });
31
+
32
+ // 关闭监听
33
+ registerCase('database realtime: close watch', async () => {
34
+ ref && ref.close();
35
+ });
36
+
37
+ // 测试doc().watch()
38
+ registerCase('database realtime: one doc watch', async () => {
39
+ const res = await collection.get();
40
+ const watchDocId = res.data[0]._id;
41
+ collection.doc(watchDocId).watch({
42
+ onChange: snapshot => {
43
+ console.log('收到single doc snapshot**********', snapshot);
44
+ assert(isSuccess(0, snapshot) && snapshot.docs.length, { snapshot });
45
+
46
+ collection.doc(watchDocId).update({
47
+ test: 20
48
+ });
49
+ },
50
+ onError: error => {
51
+ console.log('收到single doc error**********', error);
52
+ }
53
+ });
54
+ });
55
+
56
+ // 多个监听
57
+ registerCase('database realtime: one watch init', () => {
58
+ // const collection = db.collection(collName)
59
+ let watchNum = 100;
60
+ const calWatchNum = 100;
61
+ let initOkNum = 0;
62
+ let nextOkObj = {};
63
+
64
+ // 开启多个监听 测试所有监听是否收到initevent 及 nextevent
65
+ while (watchNum--) {
66
+ nextOkObj[watchNum] = 0;
67
+ /* eslint-disable */
68
+ (function(watchNum) {
69
+ collection.where({ test: _.gt(0) }).watch({
70
+ onChange: snapshot => {
71
+ if (snapshot.msgType === 'INIT_EVENT') {
72
+ assert(snapshot.docChanges.length > 0);
73
+
74
+ // console.log(`收到init snapshot${watchNum}**********`, snapshot)
75
+
76
+ if (++initOkNum === calWatchNum) {
77
+ console.log('init snapshot all receive');
78
+ }
79
+ // 生成nextevent
80
+
81
+ // collection.add({ test: 2 })
82
+ }
83
+
84
+ if (snapshot.msgType === 'NEXT_EVENT') {
85
+ nextOkObj[watchNum]++;
86
+
87
+ if (nextOkObj[watchNum] === nextEventNum) {
88
+ console.log('next snapshot all receive');
89
+ }
90
+
91
+ assert(snapshot.docChanges.length > 0);
92
+ // console.log(`收到next snapshot${watchNum}**********`, snapshot)
93
+ }
94
+ },
95
+ onError: error => {
96
+ console.log('收到error1**********', error);
97
+ }
98
+ });
99
+ })(watchNum);
100
+ }
101
+ });
102
+ }