@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,122 @@
1
+ /* eslint-disable max-nested-callbacks */
2
+ const axios = require('axios');
3
+ const path = require('path');
4
+ beforeEach(async () => {
5
+ const {
6
+ data: { ticket }
7
+ } = await axios.get('http://service-m1w79cyz-1257776809.ap-shanghai.apigateway.myqcloud.com/release/');
8
+ // await sleep(3600 * 1000);
9
+
10
+ const refreshToken = await page.evaluate(ticket => {
11
+ app = window.cloudbase.init({
12
+ env: 'starkwang-e850e3'
13
+ });
14
+
15
+ return app
16
+ .auth({ persistence: 'local' })
17
+ .customAuthProvider()
18
+ .signIn(ticket)
19
+ .then(() => {
20
+ return window.localStorage['refresh_token_starkwang-e850e3'];
21
+ });
22
+ }, ticket);
23
+
24
+ expect(refreshToken).toBeDefined();
25
+ });
26
+ describe('鉴权', () => {
27
+ it('自定义登录后应该有access token', async () => {
28
+ const result = await page.evaluate(() => {
29
+ return localStorage.getItem('access_token_starkwang-e850e3');
30
+ });
31
+
32
+ expect(result).toBeDefined();
33
+ });
34
+ it('获取Auth Header', async () => {
35
+ const result = await page.evaluate(() => {
36
+ return app.auth().getAuthHeader();
37
+ });
38
+ expect(result['x-cloudbase-credentials']).toBeDefined();
39
+ });
40
+ it('hasLoginState', async () => {
41
+ const page = global.page;
42
+ let result = await page.evaluate(() => {
43
+ const res = app.auth().hasLoginState();
44
+ return Promise.resolve({
45
+ credential: res.credential
46
+ });
47
+ });
48
+
49
+ expect(typeof result.credential.refreshToken === 'string').toBeTruthy();
50
+ expect(typeof result.credential.accessToken === 'string').toBeTruthy();
51
+
52
+ result = await page.evaluate(() => {
53
+ return app
54
+ .auth()
55
+ .signOut()
56
+ .then(() => {
57
+ return app.auth().hasLoginState();
58
+ });
59
+ });
60
+ expect(result).toEqual(null);
61
+ });
62
+ it('signOut', async () => {
63
+ const page = global.page;
64
+ let result = await page.evaluate(() => {
65
+ return app.auth().signOut();
66
+ });
67
+ expect(result).toBeDefined();
68
+ expect(result.code).toBeUndefined();
69
+ });
70
+ it('onLoginStateChanged在绑定事件时立即触发', async () => {
71
+ const page = global.page;
72
+ let result = await page.evaluate(() => {
73
+ return new Promise(resolve => {
74
+ app.auth().onLoginStateChanged(loginState => {
75
+ resolve({
76
+ isAnonymousAuth: loginState.isAnonymousAuth,
77
+ credential: loginState.credential
78
+ });
79
+ });
80
+ });
81
+ });
82
+ expect(result).toBeDefined();
83
+ expect(result.isAnonymous).toBeFalsy();
84
+ expect(result.credential).toBeDefined();
85
+ });
86
+ it('重复登录,之前的refresh token应该失效', async () => {
87
+ const page = global.page;
88
+ const oldRefreshToken = await page.evaluate(() => {
89
+ return localStorage.getItem('refresh_token_starkwang-e850e3');
90
+ });
91
+ expect(oldRefreshToken).toBeDefined();
92
+
93
+ // 拉取新的ticket,第二次登录
94
+ const {
95
+ data: { ticket }
96
+ } = await axios.get('http://service-m1w79cyz-1257776809.ap-shanghai.apigateway.myqcloud.com/release/');
97
+ const newRefreshToken = await page.evaluate(ticket => {
98
+ app = window.cloudbase.init({
99
+ env: 'starkwang-e850e3'
100
+ });
101
+
102
+ return app
103
+ .auth({ persistence: 'local' })
104
+ .customAuthProvider()
105
+ .signIn(ticket)
106
+ .then(() => {
107
+ return window.localStorage['refresh_token_starkwang-e850e3'];
108
+ });
109
+ }, ticket);
110
+ expect(newRefreshToken).toBeDefined();
111
+
112
+ // 清理第二次的登录态,改成第一次的登陆态 ?
113
+ // let result = await page.evaluate(oldRefreshToken => {
114
+ // window.localStorage.clear();
115
+ // window.localStorage['refresh_token_starkwang-e850e3'] = oldRefreshToken;
116
+ // const res = app.auth({ persistence: 'local' }).hasLoginState();
117
+ // console.log('res:', res);
118
+ // return res;
119
+ // }, oldRefreshToken);
120
+ // expect(result).toEqual(null);
121
+ });
122
+ });
@@ -0,0 +1,61 @@
1
+ const axios = require('axios');
2
+ beforeEach(async () => {
3
+ const { data: { ticket }} = await axios.get('http://service-m1w79cyz-1257776809.ap-shanghai.apigateway.myqcloud.com/release/');
4
+ // await sleep(3600 * 1000);
5
+ const refreshToken = await page.evaluate((ticket) => {
6
+ app = window.cloudbase.init({
7
+ env: 'starkwang-e850e3'
8
+ });
9
+
10
+ return app.auth({ persistence: 'local' }).customAuthProvider().signIn(ticket).then(() => {
11
+ return window.localStorage['refresh_token_starkwang-e850e3'];
12
+ });
13
+ }, ticket);
14
+
15
+ expect(refreshToken).toBeDefined();
16
+ });
17
+
18
+ describe('数据库', () => {
19
+ it('DB查询', async () => {
20
+ const page = global.page;
21
+ const result = await page.evaluate(() => {
22
+ const db = app.database();
23
+ return db.collection('test').where({
24
+ text: /.*/
25
+ }).get();
26
+ });
27
+
28
+ expect(result.data.length > 0).toBeTruthy();
29
+ });
30
+
31
+ it('插入Point', async () => {
32
+ const page = global.page;
33
+ let result = await page.evaluate(() => {
34
+ const db = app.database();
35
+ return db.collection('test').add({
36
+ point: new db.Geo.Point(-180, -1)
37
+ });
38
+ });
39
+
40
+ const { id } = result;
41
+ expect(id).toBeDefined();
42
+
43
+ result = await page.evaluate(() => {
44
+ const db = app.database();
45
+ return db.collection('test').where({
46
+ point: new db.Geo.Point(-180, -1)
47
+ }).get();
48
+ });
49
+
50
+ expect(result.data.length > 0).toBeTruthy();
51
+
52
+ result = await page.evaluate((id) => {
53
+ const db = app.database();
54
+ return db.collection('test').where({
55
+ _id: id
56
+ }).remove();
57
+ }, id);
58
+
59
+ expect(result.deleted).toEqual(1);
60
+ });
61
+ });
@@ -0,0 +1,89 @@
1
+ /* eslint-disable max-nested-callbacks */
2
+ /**
3
+ * 将LoginState类的loginType和/is.*Auth/属性以及
4
+ * Auth类的currentUser和loginType属性
5
+ * 从get属性改为普通属性,
6
+ * 本例为测试改动后功能是否正常。
7
+ * 主要思路是将改动后同步获得的属性与未改动过的异步获得的属性进行比较,如果相同则测试成功。
8
+ */
9
+ const axios = require('axios');
10
+ const path = require('path');
11
+ beforeEach(async () => {
12
+ const {
13
+ data: { ticket }
14
+ } = await axios.get('http://service-m1w79cyz-1257776809.ap-shanghai.apigateway.myqcloud.com/release/');
15
+
16
+ const refreshToken = await page.evaluate(ticket => {
17
+ app = window.cloudbase.init({
18
+ env: 'starkwang-e850e3'
19
+ });
20
+
21
+ return app
22
+ .auth({ persistence: 'local' })
23
+ .customAuthProvider()
24
+ .signIn(ticket)
25
+ .then(() => {
26
+ return window.localStorage['refresh_token_starkwang-e850e3'];
27
+ });
28
+ }, ticket);
29
+
30
+ expect(refreshToken).toBeDefined();
31
+ });
32
+
33
+ describe('login后loginState、loginType和User是否正确', () => {
34
+ it('custom sign in后loginState的isCustomLogin为真', async () => {
35
+ const res = await page.evaluate(() => {
36
+ return app
37
+ .auth()
38
+ .hasLoginState()
39
+ .isCustomAuth
40
+ });
41
+
42
+ expect(res).toBeTruthy();
43
+ })
44
+ it('sign in后loginType是否正确', async () => {
45
+ const res = await page.evaluate(() => {
46
+ return app
47
+ .auth()
48
+ .getLoginType()
49
+ .then(loginType => loginType === app.auth().loginType);
50
+ });
51
+
52
+ expect(res).toBeTruthy;
53
+ })
54
+ it('sign in后User是否正确', async () => {
55
+ const res = await page.evaluate(() => {
56
+ return app
57
+ .auth()
58
+ .getCurrenUser()
59
+ .then(currentUser => currentUser.uid === app.auth().currentUser.uid);
60
+ });
61
+
62
+ expect(res).toBeTruthy();
63
+ })
64
+ }
65
+ )
66
+ /*登出后,loginState为null,无需测试 */
67
+ describe('sign out后loginType和User是否正确', () => {
68
+ it('sign out后loginType是否正确', async () => {
69
+ const res = await page.evaluate(() => {
70
+ return app
71
+ .auth()
72
+ .signOut()
73
+ .then(() => app.auth().getLoginType())
74
+ .then(loginType => loginType === app.auth().loginType);
75
+ });
76
+
77
+ expect(res).toBeTruthy;
78
+ })
79
+ it('sign out后user是否正确', async () => {
80
+ const res = await page.evaluate(() => {
81
+ return app
82
+ .auth()
83
+ .signOut()
84
+ .then(() => app.auth().currentUser === null);
85
+ });
86
+
87
+ expect(res).toBeTruthy();
88
+ })
89
+ })
@@ -0,0 +1,39 @@
1
+ /* eslint-disable no-useless-constructor */
2
+ // puppeteer_environment.js
3
+ const NodeEnvironment = require('jest-environment-node');
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const puppeteer = require('puppeteer');
7
+ const os = require('os');
8
+
9
+ const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup');
10
+
11
+ class PuppeteerEnvironment extends NodeEnvironment {
12
+ constructor(config) {
13
+ super(config);
14
+ }
15
+
16
+ async setup() {
17
+ await super.setup();
18
+ // get the wsEndpoint
19
+ const wsEndpoint = fs.readFileSync(path.join(DIR, 'wsEndpoint'), 'utf8');
20
+ if (!wsEndpoint) {
21
+ throw new Error('wsEndpoint not found');
22
+ }
23
+
24
+ // connect to puppeteer
25
+ this.global.__BROWSER__ = await puppeteer.connect({
26
+ browserWSEndpoint: wsEndpoint,
27
+ });
28
+ }
29
+
30
+ async teardown() {
31
+ await super.teardown();
32
+ }
33
+
34
+ runScript(script) {
35
+ return super.runScript(script);
36
+ }
37
+ }
38
+
39
+ module.exports = PuppeteerEnvironment;
@@ -0,0 +1,33 @@
1
+ // setup.js
2
+ const puppeteer = require('puppeteer');
3
+ const mkdirp = require('mkdirp');
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+ const os = require('os');
7
+
8
+ const serveStatic = require('serve-static');
9
+ const express = require('express');
10
+
11
+ const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup');
12
+
13
+ module.exports = async function() {
14
+ const browserFetcher = puppeteer.createBrowserFetcher();
15
+ const revisionInfo = await browserFetcher.download('686378');
16
+ const browser = await puppeteer.launch({
17
+ // headless: false
18
+ executablePath: revisionInfo.executablePath,
19
+ args: ['--no-sandbox', '--disable-setuid-sandbox']
20
+ });
21
+ // store the browser instance so we can teardown it later
22
+ // this global is only available in the teardown but not in TestEnvironments
23
+ global.__BROWSER_GLOBAL__ = browser;
24
+
25
+ // use the file system to expose the wsEndpoint for TestEnvironments
26
+ mkdirp.sync(DIR);
27
+ fs.writeFileSync(path.join(DIR, 'wsEndpoint'), browser.wsEndpoint());
28
+
29
+ const app = express();
30
+ app.use(serveStatic('.'));
31
+ const server = app.listen(8000);
32
+ global.__SERVER__ = server;
33
+ };
@@ -0,0 +1,15 @@
1
+ // teardown.js
2
+ const os = require('os');
3
+ const rimraf = require('rimraf');
4
+ const path = require('path');
5
+
6
+ const DIR = path.join(os.tmpdir(), 'jest_puppeteer_global_setup');
7
+ module.exports = async function() {
8
+ // close the browser instance
9
+ await global.__BROWSER_GLOBAL__.close();
10
+
11
+ // clean-up the wsEndpoint file
12
+ rimraf.sync(DIR);
13
+
14
+ await global.__SERVER__.close();
15
+ };
@@ -0,0 +1,37 @@
1
+ // setup.js
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+
5
+ const tcbjs = fs.readFileSync(path.resolve(__dirname, '../../cdnjs_e2e/cloudbase.full.js'), 'utf-8');
6
+
7
+ const browser = global.__BROWSER__;
8
+
9
+ jest.setTimeout(10000); // 10 second
10
+
11
+ async function setup() {
12
+ const page = await browser.newPage();
13
+ page.on('console', msg => {
14
+ console.log('console:', `[${msg._type}]: ${msg._text}`);
15
+ });
16
+
17
+ page.on('error', err => {
18
+ console.log('err:', err);
19
+ });
20
+ global.page = page;
21
+ await page.goto('http://127.0.0.1:8000', { waitUntil: 'load' });
22
+ await page.addScriptTag({
23
+ content: tcbjs
24
+ });
25
+ }
26
+
27
+ beforeEach(async () => {
28
+ await setup();
29
+ });
30
+
31
+ afterEach(async () => {
32
+ const { page } = global;
33
+ await page.evaluate(() => {
34
+ localStorage.clear();
35
+ });
36
+ page.close();
37
+ });
@@ -0,0 +1,89 @@
1
+ const {cloudbase} = require('../../packages/app');
2
+
3
+ const registerFunctions = jest.fn(function(app){
4
+ app.registerComponent({
5
+ name: 'functions',
6
+ entity: {
7
+ callFunction: jest.fn(function (...args) {
8
+ return {
9
+ this: this,
10
+ args: args
11
+ };
12
+ })
13
+ }
14
+ });
15
+ });
16
+
17
+ const registerStorage = jest.fn(function(app){
18
+ app.registerComponent({
19
+ name: 'storage',
20
+ entity: {
21
+ uploadFile: jest.fn(function (...args) {
22
+ return {
23
+ this: this,
24
+ args: args
25
+ };
26
+ }),
27
+ deleteFile: jest.fn(function (...args) {
28
+ return {
29
+ this: this,
30
+ args: args
31
+ };
32
+ }),
33
+ getTempFileURL: jest.fn(function (...args) {
34
+ return {
35
+ this: this,
36
+ args: args
37
+ };
38
+ }),
39
+ downloadFile: jest.fn(function (...args) {
40
+ return {
41
+ this: this,
42
+ args: args
43
+ };
44
+ })
45
+ }
46
+ });
47
+ })
48
+ registerFunctions(cloudbase);
49
+ registerStorage(cloudbase);
50
+
51
+ const app = cloudbase.init({
52
+ env: 'env-id',
53
+ timeout: 20000
54
+ });
55
+
56
+ test('tcb.init()', () => {
57
+ expect(app).toHaveProperty('_config');
58
+ expect(app).toHaveProperty('authInstance');
59
+ });
60
+
61
+ test('callFunction', () => {
62
+ const result = app.callFunction(1, 2);
63
+ expect(result.this).toEqual(app);
64
+ expect(result.args).toEqual([1, 2]);
65
+ });
66
+
67
+ test('deleteFile', () => {
68
+ const result = app.deleteFile(1, 2);
69
+ expect(result.this).toEqual(app);
70
+ expect(result.args).toEqual([1, 2]);
71
+ });
72
+
73
+ test('getTempFileURL', () => {
74
+ const result = app.getTempFileURL(1, 2);
75
+ expect(result.this).toEqual(app);
76
+ expect(result.args).toEqual([1, 2]);
77
+ });
78
+
79
+ test('downloadFile', () => {
80
+ const result = app.downloadFile(1, 2);
81
+ expect(result.this).toEqual(app);
82
+ expect(result.args).toEqual([1, 2]);
83
+ });
84
+
85
+ test('uploadFile', () => {
86
+ const result = app.uploadFile(1, 2);
87
+ expect(result.this).toEqual(app);
88
+ expect(result.args).toEqual([1, 2]);
89
+ });