@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.
- package/Dockerfile +15 -0
- package/README.md +1 -1
- package/_exmaple/assets/scripts/function/function.ts +99 -0
- package/_exmaple/assets/scripts/index.ts +99 -0
- package/_exmaple/assets/scripts/request.ts +11 -0
- package/_exmaple/index.html +15 -0
- package/_exmaple/package.json +33 -0
- package/_exmaple/tsconfig.json +71 -0
- package/_exmaple/typings.d.ts +0 -0
- package/_exmaple/webpack.config.js +42 -0
- package/cdnjs/1.0.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.0/cloudbase.database.js +8 -0
- package/cdnjs/1.0.0/cloudbase.full.js +8 -0
- package/cdnjs/1.0.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.0/cloudbase.js +1 -0
- package/cdnjs/1.0.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.1/cloudbase.database.js +8 -0
- package/cdnjs/1.0.1/cloudbase.full.js +8 -0
- package/cdnjs/1.0.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.1/cloudbase.js +1 -0
- package/cdnjs/1.0.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.2/cloudbase.database.js +8 -0
- package/cdnjs/1.0.2/cloudbase.full.js +8 -0
- package/cdnjs/1.0.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.2/cloudbase.js +1 -0
- package/cdnjs/1.0.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.3/cloudbase.database.js +8 -0
- package/cdnjs/1.0.3/cloudbase.full.js +8 -0
- package/cdnjs/1.0.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.3/cloudbase.js +1 -0
- package/cdnjs/1.0.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.4/cloudbase.database.js +8 -0
- package/cdnjs/1.0.4/cloudbase.full.js +8 -0
- package/cdnjs/1.0.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.4/cloudbase.js +1 -0
- package/cdnjs/1.0.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.0/cloudbase.database.js +8 -0
- package/cdnjs/1.1.0/cloudbase.full.js +8 -0
- package/cdnjs/1.1.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.0/cloudbase.js +1 -0
- package/cdnjs/1.1.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.1/cloudbase.database.js +8 -0
- package/cdnjs/1.1.1/cloudbase.full.js +8 -0
- package/cdnjs/1.1.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.1/cloudbase.js +1 -0
- package/cdnjs/1.1.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.2/cloudbase.database.js +8 -0
- package/cdnjs/1.1.2/cloudbase.full.js +8 -0
- package/cdnjs/1.1.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.2/cloudbase.js +1 -0
- package/cdnjs/1.1.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.3/cloudbase.database.js +8 -0
- package/cdnjs/1.1.3/cloudbase.full.js +8 -0
- package/cdnjs/1.1.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.3/cloudbase.js +1 -0
- package/cdnjs/1.1.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.4/cloudbase.database.js +8 -0
- package/cdnjs/1.1.4/cloudbase.full.js +8 -0
- package/cdnjs/1.1.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.4/cloudbase.js +1 -0
- package/cdnjs/1.1.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.1/cloudbase.database.js +8 -0
- package/cdnjs/1.2.1/cloudbase.full.js +8 -0
- package/cdnjs/1.2.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.1/cloudbase.js +1 -0
- package/cdnjs/1.2.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.2/cloudbase.database.js +8 -0
- package/cdnjs/1.2.2/cloudbase.full.js +8 -0
- package/cdnjs/1.2.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.2/cloudbase.js +1 -0
- package/cdnjs/1.2.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.3/cloudbase.database.js +8 -0
- package/cdnjs/1.2.3/cloudbase.full.js +8 -0
- package/cdnjs/1.2.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.3/cloudbase.js +1 -0
- package/cdnjs/1.2.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.0/cloudbase.js +1 -0
- package/cdnjs/1.3.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.1/cloudbase.database.js +8 -0
- package/cdnjs/1.3.1/cloudbase.full.js +8 -0
- package/cdnjs/1.3.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.1/cloudbase.js +1 -0
- package/cdnjs/1.3.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.2/cloudbase.database.js +8 -0
- package/cdnjs/1.3.2/cloudbase.full.js +8 -0
- package/cdnjs/1.3.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.2/cloudbase.js +1 -0
- package/cdnjs/1.3.2/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.3/cloudbase.database.js +8 -0
- package/cdnjs/1.3.3/cloudbase.full.js +8 -0
- package/cdnjs/1.3.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.3/cloudbase.js +1 -0
- package/cdnjs/1.3.3/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5/cloudbase.analytics.js +1 -0
- package/cdnjs/1.3.5/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5/cloudbase.js +1 -0
- package/cdnjs/1.3.5/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.0/cloudbase.js +1 -0
- package/cdnjs/1.4.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1/cloudbase.js +1 -0
- package/cdnjs/1.4.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.0/cloudbase.js +1 -0
- package/cdnjs/1.5.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1/cloudbase.database.js +26 -0
- package/cdnjs/1.5.1/cloudbase.full.js +26 -0
- package/cdnjs/1.5.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1/cloudbase.js +1 -0
- package/cdnjs/1.5.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.database.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.full.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.6.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.6.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.6.0/cloudbase.database.js +26 -0
- package/cdnjs/1.6.0/cloudbase.full.js +26 -0
- package/cdnjs/1.6.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.6.0/cloudbase.js +1 -0
- package/cdnjs/1.6.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.6.0/cloudbase.storage.js +1 -0
- package/{CHANGELOG.md → changelog.md} +0 -0
- package/dist/README.md +153 -0
- package/{app → dist/app}/index.d.ts +1 -0
- package/{app → dist/app}/index.js +0 -0
- package/dist/app/index.js.map +1 -0
- package/{app → dist/app}/internal.d.ts +0 -0
- package/{app → dist/app}/internal.js +0 -0
- package/{app → dist/app}/internal.js.map +0 -0
- package/{app → dist/app}/openuri.d.ts +0 -0
- package/{app → dist/app}/openuri.js +2 -1
- package/{app → dist/app}/openuri.js.map +1 -1
- package/{app → dist/app}/request.d.ts +4 -3
- package/{app → dist/app}/request.js +20 -12
- package/dist/app/request.js.map +1 -0
- package/{app → dist/app}/storage.d.ts +0 -0
- package/{app → dist/app}/storage.js +0 -0
- package/{app → dist/app}/storage.js.map +0 -0
- package/{auth → dist/auth}/consts.d.ts +21 -4
- package/{auth → dist/auth}/consts.js +27 -5
- package/dist/auth/consts.js.map +1 -0
- package/{auth → dist/auth}/index.d.ts +83 -34
- package/{auth → dist/auth}/index.js +239 -92
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/models.d.ts +284 -0
- package/{oauthclient → dist/auth}/models.js +1 -0
- package/dist/auth/models.js.map +1 -0
- package/{captcha → dist/captcha}/index.d.ts +0 -0
- package/{captcha → dist/captcha}/index.js +4 -2
- package/dist/captcha/index.js.map +1 -0
- package/dist/changelog.md +30 -0
- package/dist/function/index.d.ts +38 -0
- package/dist/function/index.js +80 -0
- package/dist/function/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/consts.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/index.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/index.js +2 -2
- package/dist/oauthclient/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/interface.d.ts +4 -0
- package/{oauthclient → dist/oauthclient}/interface.js +0 -0
- package/{oauthclient → dist/oauthclient}/interface.js.map +1 -1
- package/{oauthclient → dist/oauthclient}/models.d.ts +12 -11
- package/{auth → dist/oauthclient}/models.js +0 -0
- package/{oauthclient → dist/oauthclient}/models.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/oauthclient.d.ts +11 -7
- package/{oauthclient → dist/oauthclient}/oauthclient.js +27 -12
- package/dist/oauthclient/oauthclient.js.map +1 -0
- package/dist/package.json +32 -0
- package/{utils/single-promise.d.ts → dist/utils/promise.d.ts} +3 -3
- package/{utils/single-promise.js → dist/utils/promise.js} +6 -6
- package/dist/utils/promise.js.map +1 -0
- package/{utils → dist/utils}/uuid.d.ts +0 -0
- package/{utils → dist/utils}/uuid.js +0 -0
- package/{utils → dist/utils}/uuid.js.map +0 -0
- package/docs/dev.md +71 -0
- package/docs/errlog.md +79 -0
- package/package.json +3 -2
- package/publish.sh +2 -0
- package/src/app/index.ts +83 -0
- package/src/app/internal.ts +26 -0
- package/src/app/openuri.ts +111 -0
- package/src/app/request.ts +66 -0
- package/src/app/storage.ts +58 -0
- package/src/auth/consts.ts +74 -0
- package/src/auth/index.ts +718 -0
- package/src/auth/models.ts +352 -0
- package/src/captcha/index.ts +170 -0
- package/src/function/index.ts +103 -0
- package/src/index.ts +32 -0
- package/src/oauthclient/consts.ts +48 -0
- package/src/oauthclient/index.ts +33 -0
- package/src/oauthclient/interface.ts +34 -0
- package/src/oauthclient/models.ts +50 -0
- package/src/oauthclient/oauthclient.ts +487 -0
- package/src/utils/promise.ts +41 -0
- package/src/utils/uuid.ts +11 -0
- package/test/e2e/cases/custom-login.test.js +122 -0
- package/test/e2e/cases/index.test.js +61 -0
- package/test/e2e/cases/login-state.test.js +89 -0
- package/test/e2e/environment.js +39 -0
- package/test/e2e/global_setup.js +33 -0
- package/test/e2e/global_teardown.js +15 -0
- package/test/e2e/setup.js +37 -0
- package/test/unit/index.test.js +89 -0
- package/test/web/cases/auth/index.js +256 -0
- package/test/web/cases/database/collection.js +173 -0
- package/test/web/cases/database/command.js +754 -0
- package/test/web/cases/database/date.js +122 -0
- package/test/web/cases/database/db.js +20 -0
- package/test/web/cases/database/document.js +160 -0
- package/test/web/cases/database/geo-advanced.js +327 -0
- package/test/web/cases/database/geo.js +105 -0
- package/test/web/cases/database/index.js +315 -0
- package/test/web/cases/database/order.js +83 -0
- package/test/web/cases/database/realtime.js +102 -0
- package/test/web/cases/database/regex.js +140 -0
- package/test/web/cases/ext/index.js +88 -0
- package/test/web/cases/function/index.js +77 -0
- package/test/web/cases/storage/cos.jpeg +0 -0
- package/test/web/cases/storage/index.js +207 -0
- package/test/web/index.html +63 -0
- package/test/web/index.js +109 -0
- package/test/web/util.js +80 -0
- package/tsconfig.json +35 -0
- package/wiki/README.md +75 -0
- package/app/index.js.map +0 -1
- package/app/request.js.map +0 -1
- package/auth/consts.js.map +0 -1
- package/auth/index.js.map +0 -1
- package/auth/models.d.ts +0 -158
- package/auth/models.js.map +0 -1
- package/captcha/index.js.map +0 -1
- package/index.d.ts +0 -8
- package/index.js +0 -17
- package/index.js.map +0 -1
- package/oauthclient/index.js.map +0 -1
- package/oauthclient/oauthclient.js.map +0 -1
- 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
|
+
});
|