entropic-bond 1.40.4 → 1.40.6
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/lib/auth/auth-mock.js +15 -29
- package/lib/auth/auth-mock.js.map +1 -1
- package/lib/auth/auth-mock.spec.js +29 -35
- package/lib/auth/auth-mock.spec.js.map +1 -1
- package/lib/cloud-functions/cloud-functions-mock.spec.js +32 -41
- package/lib/cloud-functions/cloud-functions-mock.spec.js.map +1 -1
- package/lib/cloud-functions/cloud-functions.js +3 -12
- package/lib/cloud-functions/cloud-functions.js.map +1 -1
- package/lib/cloud-storage/cloud-storage.spec.js +49 -58
- package/lib/cloud-storage/cloud-storage.spec.js.map +1 -1
- package/lib/cloud-storage/stored-file.js +20 -33
- package/lib/cloud-storage/stored-file.js.map +1 -1
- package/lib/observable/observable.d.ts +12 -0
- package/lib/observable/observable.js +17 -3
- package/lib/observable/observable.js.map +1 -1
- package/lib/observable/observable.spec.js +7 -0
- package/lib/observable/observable.spec.js.map +1 -1
- package/lib/persistent/persistent.js +25 -8
- package/lib/persistent/persistent.js.map +1 -1
- package/lib/persistent/persistent.spec.js +18 -28
- package/lib/persistent/persistent.spec.js.map +1 -1
- package/lib/server-auth/server-auth-mock.js +6 -2
- package/lib/server-auth/server-auth-mock.js.map +1 -1
- package/lib/server-auth/server-auth-mock.spec.js +14 -23
- package/lib/server-auth/server-auth-mock.spec.js.map +1 -1
- package/lib/store/json-data-source.js +1 -1
- package/lib/store/json-data-source.js.map +1 -1
- package/lib/store/json-data-source.spec.js +18 -27
- package/lib/store/json-data-source.spec.js.map +1 -1
- package/lib/store/model.spec.js +181 -190
- package/lib/store/model.spec.js.map +1 -1
- package/lib/store/store.js +20 -31
- package/lib/store/store.js.map +1 -1
- package/lib/store/store.spec.js +4 -13
- package/lib/store/store.spec.js.map +1 -1
- package/package.json +3 -3
package/lib/auth/auth-mock.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.AuthMock = void 0;
|
|
13
4
|
const auth_1 = require("./auth");
|
|
@@ -19,8 +10,7 @@ class AuthMock extends auth_1.AuthService {
|
|
|
19
10
|
}
|
|
20
11
|
signUp(signData) {
|
|
21
12
|
const { verificationLink, email, password, authProvider } = signData;
|
|
22
|
-
const promise = new Promise((resolve, reject) =>
|
|
23
|
-
var _a, _b;
|
|
13
|
+
const promise = new Promise(async (resolve, reject) => {
|
|
24
14
|
if (authProvider === 'email') {
|
|
25
15
|
if (!email)
|
|
26
16
|
reject({ code: 'missingEmail', message: 'missingEmail' });
|
|
@@ -31,13 +21,13 @@ class AuthMock extends auth_1.AuthService {
|
|
|
31
21
|
this._loggedUser = this.userCredentials(signData);
|
|
32
22
|
this._fakeRegisteredUsers[this._loggedUser.id] = this._loggedUser;
|
|
33
23
|
resolve(this._loggedUser);
|
|
34
|
-
|
|
24
|
+
this.notifyChange?.(this._loggedUser);
|
|
35
25
|
}
|
|
36
26
|
else {
|
|
37
27
|
reject({ code: 'userNotFound', message: verificationLink || 'Test auth error' });
|
|
38
|
-
|
|
28
|
+
this.notifyChange?.(undefined);
|
|
39
29
|
}
|
|
40
|
-
})
|
|
30
|
+
});
|
|
41
31
|
this.pendingPromises.push(promise);
|
|
42
32
|
return promise;
|
|
43
33
|
}
|
|
@@ -52,16 +42,14 @@ class AuthMock extends auth_1.AuthService {
|
|
|
52
42
|
this.notifyChange = onChange;
|
|
53
43
|
this.notifyChange(this._loggedUser);
|
|
54
44
|
}
|
|
55
|
-
logout() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this.notifyChange(undefined);
|
|
61
|
-
});
|
|
62
|
-
this.pendingPromises.push(promise);
|
|
63
|
-
return promise;
|
|
45
|
+
async logout() {
|
|
46
|
+
const promise = new Promise(resolve => {
|
|
47
|
+
this._loggedUser = undefined;
|
|
48
|
+
resolve();
|
|
49
|
+
this.notifyChange(undefined);
|
|
64
50
|
});
|
|
51
|
+
this.pendingPromises.push(promise);
|
|
52
|
+
return promise;
|
|
65
53
|
}
|
|
66
54
|
resetEmailPassword(email) {
|
|
67
55
|
const fakeUserExists = Object.values(this._fakeRegisteredUsers).find(user => user.email === email);
|
|
@@ -76,11 +64,9 @@ class AuthMock extends auth_1.AuthService {
|
|
|
76
64
|
unlinkProvider(provider) {
|
|
77
65
|
throw new Error('Not implemented.');
|
|
78
66
|
}
|
|
79
|
-
flush() {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.pendingPromises = [];
|
|
83
|
-
});
|
|
67
|
+
async flush() {
|
|
68
|
+
await Promise.all(this.pendingPromises);
|
|
69
|
+
this.pendingPromises = [];
|
|
84
70
|
}
|
|
85
71
|
fakeRegisteredUser(userCredentials) {
|
|
86
72
|
if (this._fakeRegisteredUsers[userCredentials.id])
|
|
@@ -94,7 +80,7 @@ class AuthMock extends auth_1.AuthService {
|
|
|
94
80
|
userCredentials(signData) {
|
|
95
81
|
const fakeUser = Object.values(this._fakeRegisteredUsers).find(user => user.email === signData.email);
|
|
96
82
|
if (fakeUser) {
|
|
97
|
-
return
|
|
83
|
+
return { ...fakeUser };
|
|
98
84
|
}
|
|
99
85
|
else {
|
|
100
86
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-mock.js","sourceRoot":"","sources":["../../src/auth/auth-mock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-mock.js","sourceRoot":"","sources":["../../src/auth/auth-mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const auth_1 = require("./auth");
|
|
13
4
|
const auth_mock_1 = require("./auth-mock");
|
|
@@ -34,73 +25,76 @@ describe('Auth Mock', () => {
|
|
|
34
25
|
auth_1.Auth.useAuthService(undefined);
|
|
35
26
|
expect(() => auth_1.Auth.instance).toThrow(auth_1.Auth.error.shouldBeRegistered);
|
|
36
27
|
});
|
|
37
|
-
it('should emulate sign-up', () =>
|
|
38
|
-
const userCredentials =
|
|
28
|
+
it('should emulate sign-up', async () => {
|
|
29
|
+
const userCredentials = await auth_1.Auth.instance.signUp({
|
|
39
30
|
authProvider: 'google',
|
|
40
31
|
email: 'test@test.com',
|
|
41
32
|
password: 'password'
|
|
42
33
|
});
|
|
43
34
|
expect(userCredentials.email).toEqual('test@test.com');
|
|
44
35
|
expect(authChangeSpy).toHaveBeenCalledWith(userCredentials);
|
|
45
|
-
})
|
|
46
|
-
it('should emulate failed sign-up', () =>
|
|
36
|
+
});
|
|
37
|
+
it('should emulate failed sign-up', async () => {
|
|
47
38
|
try {
|
|
48
|
-
var userCredentials =
|
|
39
|
+
var userCredentials = await auth_1.Auth.instance.signUp({
|
|
49
40
|
authProvider: 'email',
|
|
50
41
|
email: 'test@test.com',
|
|
51
42
|
password: 'fail'
|
|
52
43
|
});
|
|
53
44
|
}
|
|
54
|
-
catch
|
|
45
|
+
catch { }
|
|
55
46
|
expect(userCredentials).toBeUndefined();
|
|
56
47
|
expect(authChangeSpy).toHaveBeenCalledWith(undefined);
|
|
57
|
-
})
|
|
58
|
-
it('should login with fake registered user', () =>
|
|
59
|
-
const userCredentials =
|
|
48
|
+
});
|
|
49
|
+
it('should login with fake registered user', async () => {
|
|
50
|
+
const userCredentials = await auth_1.Auth.instance.login({
|
|
60
51
|
email: 'fakeUser@test.com',
|
|
61
52
|
password: 'password',
|
|
62
53
|
authProvider: 'google'
|
|
63
54
|
});
|
|
64
|
-
const modUserCredentials =
|
|
55
|
+
const modUserCredentials = {
|
|
56
|
+
...fakeUseCredentials,
|
|
57
|
+
id: fakeUseCredentials.id
|
|
58
|
+
};
|
|
65
59
|
expect(userCredentials).toEqual(modUserCredentials);
|
|
66
60
|
expect(authChangeSpy).toHaveBeenCalledWith(modUserCredentials);
|
|
67
|
-
})
|
|
68
|
-
it('should fail login with email auth provider if does not match fake user credentials', () =>
|
|
61
|
+
});
|
|
62
|
+
it('should fail login with email auth provider if does not match fake user credentials', async () => {
|
|
69
63
|
try {
|
|
70
|
-
var userCredentials =
|
|
64
|
+
var userCredentials = await auth_1.Auth.instance.login({
|
|
71
65
|
email: 'test@test.com',
|
|
72
66
|
password: 'password',
|
|
73
67
|
authProvider: 'email'
|
|
74
68
|
});
|
|
75
69
|
}
|
|
76
|
-
catch
|
|
70
|
+
catch { }
|
|
77
71
|
expect(userCredentials).toEqual(undefined);
|
|
78
72
|
expect(authChangeSpy).toHaveBeenCalledWith(undefined);
|
|
79
|
-
})
|
|
80
|
-
it('should NOT fail login with non email auth provider even if does not match fake user credentials', () =>
|
|
81
|
-
const userCredentials =
|
|
73
|
+
});
|
|
74
|
+
it('should NOT fail login with non email auth provider even if does not match fake user credentials', async () => {
|
|
75
|
+
const userCredentials = await auth_1.Auth.instance.login({
|
|
82
76
|
email: 'test@test.com',
|
|
83
77
|
password: 'password',
|
|
84
78
|
authProvider: 'google'
|
|
85
79
|
});
|
|
86
80
|
expect(userCredentials.email).toEqual('test@test.com');
|
|
87
81
|
expect(authChangeSpy).toHaveBeenCalledWith(undefined);
|
|
88
|
-
})
|
|
89
|
-
it('should logout', () =>
|
|
90
|
-
|
|
82
|
+
});
|
|
83
|
+
it('should logout', async () => {
|
|
84
|
+
await auth_1.Auth.instance.logout();
|
|
91
85
|
expect(authChangeSpy).toHaveBeenCalledWith(undefined);
|
|
92
|
-
})
|
|
93
|
-
it('should throw if email does not exists in resetEmailPassword', () =>
|
|
86
|
+
});
|
|
87
|
+
it('should throw if email does not exists in resetEmailPassword', async () => {
|
|
94
88
|
return expect(auth_1.Auth.instance.resetEmailPassword('non-existing-email@test.com')).rejects.toEqual(expect.objectContaining({ code: 'userNotFound' }));
|
|
95
|
-
})
|
|
96
|
-
it('should retrieve custom credentials', () =>
|
|
97
|
-
const userCredentials =
|
|
89
|
+
});
|
|
90
|
+
it('should retrieve custom credentials', async () => {
|
|
91
|
+
const userCredentials = await auth_1.Auth.instance.login({
|
|
98
92
|
email: 'fakeUser@test.com',
|
|
99
93
|
password: 'password',
|
|
100
94
|
authProvider: 'google'
|
|
101
95
|
});
|
|
102
96
|
expect(userCredentials.customData.role).toEqual('testRole');
|
|
103
|
-
})
|
|
97
|
+
});
|
|
104
98
|
it('should throw if login and not email in email auth provider', () => {
|
|
105
99
|
return expect(auth_1.Auth.instance.login({
|
|
106
100
|
authProvider: 'email',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-mock.spec.js","sourceRoot":"","sources":["../../src/auth/auth-mock.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-mock.spec.js","sourceRoot":"","sources":["../../src/auth/auth-mock.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const test_user_1 = require("../store/mocks/test-user");
|
|
13
4
|
const cloud_functions_1 = require("./cloud-functions");
|
|
@@ -39,75 +30,75 @@ describe('Cloud functions', () => {
|
|
|
39
30
|
testObjectResult: () => Promise.resolve({ user1: new test_user_1.TestUser('userA').toObject(), user2: new test_user_1.TestUser('userB').toObject() })
|
|
40
31
|
}));
|
|
41
32
|
});
|
|
42
|
-
it('should execute cloud function without params', () =>
|
|
33
|
+
it('should execute cloud function without params', async () => {
|
|
43
34
|
const testNoParam = cloud_functions_1.CloudFunctions.instance.getRawFunction('testNoParam');
|
|
44
|
-
const result =
|
|
35
|
+
const result = await testNoParam();
|
|
45
36
|
expect(result).toEqual('test');
|
|
46
|
-
})
|
|
47
|
-
it('should execute cloud function with params', () =>
|
|
37
|
+
});
|
|
38
|
+
it('should execute cloud function with params', async () => {
|
|
48
39
|
const testArbitraryParamAndReturn = cloud_functions_1.CloudFunctions.instance.getFunction('testArbitraryParamAndReturn');
|
|
49
|
-
const result =
|
|
40
|
+
const result = await testArbitraryParamAndReturn('Hello');
|
|
50
41
|
expect(result).toEqual(5);
|
|
51
|
-
})
|
|
52
|
-
it('should execute cloud function without params', () =>
|
|
42
|
+
});
|
|
43
|
+
it('should execute cloud function without params', async () => {
|
|
53
44
|
const testWithoutReturn = cloud_functions_1.CloudFunctions.instance.getFunction('testWithoutReturn');
|
|
54
45
|
expect(testWithoutReturn('')).resolves.toBeUndefined();
|
|
55
|
-
})
|
|
56
|
-
it('should execute cloud function with void return', () =>
|
|
46
|
+
});
|
|
47
|
+
it('should execute cloud function with void return', async () => {
|
|
57
48
|
const testWithoutParam = cloud_functions_1.CloudFunctions.instance.getFunction('testWithoutParam');
|
|
58
|
-
const result =
|
|
49
|
+
const result = await testWithoutParam();
|
|
59
50
|
expect(result).toEqual('Hello from the other side');
|
|
60
|
-
})
|
|
61
|
-
it('should execute cloud function with params and return as Persistent', () =>
|
|
51
|
+
});
|
|
52
|
+
it('should execute cloud function with params and return as Persistent', async () => {
|
|
62
53
|
const testPersistentParamAndReturn = cloud_functions_1.CloudFunctions.instance.getFunction('testPersistentParamAndReturn');
|
|
63
54
|
const user = new test_user_1.TestUser();
|
|
64
55
|
user.age = 35;
|
|
65
56
|
user.name = { firstName: 'Test User', lastName: 'as a user', ancestorName: {} };
|
|
66
|
-
const result =
|
|
57
|
+
const result = await testPersistentParamAndReturn(user);
|
|
67
58
|
expect(result.age).toBe(35);
|
|
68
59
|
expect(result.name).toEqual({ firstName: 'Test User', lastName: 'as a user', ancestorName: {} });
|
|
69
|
-
})
|
|
70
|
-
it('should execute cloud function with params as Persistent and return as plain', () =>
|
|
60
|
+
});
|
|
61
|
+
it('should execute cloud function with params as Persistent and return as plain', async () => {
|
|
71
62
|
const testPersistentParamAndPlainReturn = cloud_functions_1.CloudFunctions.instance.getFunction('testPersistentParamAndPlainReturn');
|
|
72
63
|
const user = new test_user_1.TestUser();
|
|
73
64
|
user.age = 35;
|
|
74
|
-
const result =
|
|
65
|
+
const result = await testPersistentParamAndPlainReturn(user);
|
|
75
66
|
expect(result).toBe(35);
|
|
76
|
-
})
|
|
77
|
-
it('should execute cloud function with params as plain and return as Persistent', () =>
|
|
67
|
+
});
|
|
68
|
+
it('should execute cloud function with params as plain and return as Persistent', async () => {
|
|
78
69
|
const testPlainParamAndPersistentReturn = cloud_functions_1.CloudFunctions.instance.getFunction('testPlainParamAndPersistentReturn');
|
|
79
|
-
const result =
|
|
70
|
+
const result = await testPlainParamAndPersistentReturn(35);
|
|
80
71
|
expect(result.age).toEqual(35);
|
|
81
|
-
})
|
|
82
|
-
it('should execute cloud function with params as an array of Persistents', () =>
|
|
72
|
+
});
|
|
73
|
+
it('should execute cloud function with params as an array of Persistents', async () => {
|
|
83
74
|
const testArrayParam = cloud_functions_1.CloudFunctions.instance.getFunction('testArrayParam');
|
|
84
|
-
const result =
|
|
75
|
+
const result = await testArrayParam([
|
|
85
76
|
new test_user_1.TestUser('userA'),
|
|
86
77
|
new test_user_1.TestUser('userB')
|
|
87
78
|
]);
|
|
88
79
|
expect(result).toEqual(['userA', 'userB']);
|
|
89
|
-
})
|
|
90
|
-
it('should execute cloud functions that return array of Persistent', () =>
|
|
80
|
+
});
|
|
81
|
+
it('should execute cloud functions that return array of Persistent', async () => {
|
|
91
82
|
const testArrayResult = cloud_functions_1.CloudFunctions.instance.getFunction('testArrayResult');
|
|
92
|
-
const result =
|
|
83
|
+
const result = await testArrayResult();
|
|
93
84
|
expect(result[0]).toBeInstanceOf(test_user_1.TestUser);
|
|
94
85
|
expect(result[0].id).toEqual('userA');
|
|
95
86
|
expect(result[1].id).toEqual('userB');
|
|
96
|
-
})
|
|
97
|
-
it('should execute cloud function with params as an object containing Persistents', () =>
|
|
87
|
+
});
|
|
88
|
+
it('should execute cloud function with params as an object containing Persistents', async () => {
|
|
98
89
|
const testObjectParam = cloud_functions_1.CloudFunctions.instance.getFunction('testObjectParam');
|
|
99
|
-
const result =
|
|
90
|
+
const result = await testObjectParam({
|
|
100
91
|
user1: new test_user_1.TestUser('userA'),
|
|
101
92
|
user2: new test_user_1.TestUser('userB')
|
|
102
93
|
});
|
|
103
94
|
expect(result).toEqual({ user1: 'userA', user2: 'userB' });
|
|
104
|
-
})
|
|
105
|
-
it('should execute cloud functions that return an object with Persistent', () =>
|
|
95
|
+
});
|
|
96
|
+
it('should execute cloud functions that return an object with Persistent', async () => {
|
|
106
97
|
const testObjectResult = cloud_functions_1.CloudFunctions.instance.getFunction('testObjectResult');
|
|
107
|
-
const result =
|
|
98
|
+
const result = await testObjectResult();
|
|
108
99
|
expect(result.user1).toBeInstanceOf(test_user_1.TestUser);
|
|
109
100
|
expect(result.user1.id).toEqual('userA');
|
|
110
101
|
expect(result.user2.id).toEqual('userB');
|
|
111
|
-
})
|
|
102
|
+
});
|
|
112
103
|
});
|
|
113
104
|
//# sourceMappingURL=cloud-functions-mock.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-functions-mock.spec.js","sourceRoot":"","sources":["../../src/cloud-functions/cloud-functions-mock.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloud-functions-mock.spec.js","sourceRoot":"","sources":["../../src/cloud-functions/cloud-functions-mock.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.CloudFunctions = void 0;
|
|
13
4
|
const persistent_1 = require("../persistent/persistent");
|
|
@@ -29,10 +20,10 @@ class CloudFunctions {
|
|
|
29
20
|
getFunction(cloudFunction) {
|
|
30
21
|
const callFunction = CloudFunctions._cloudFunctionsService.callFunction;
|
|
31
22
|
const func = this.getRawFunction(cloudFunction);
|
|
32
|
-
return (param) =>
|
|
33
|
-
const result =
|
|
23
|
+
return async (param) => {
|
|
24
|
+
const result = await callFunction(func, this.processParam(param));
|
|
34
25
|
return this.processResult(result);
|
|
35
|
-
}
|
|
26
|
+
};
|
|
36
27
|
}
|
|
37
28
|
processParam(param) {
|
|
38
29
|
if (!param)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-functions.js","sourceRoot":"","sources":["../../src/cloud-functions/cloud-functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloud-functions.js","sourceRoot":"","sources":["../../src/cloud-functions/cloud-functions.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
const persistent_1 = require("../persistent/persistent");
|
|
19
10
|
const json_data_source_1 = require("../store/json-data-source");
|
|
@@ -54,59 +45,59 @@ describe('Cloud Storage', () => {
|
|
|
54
45
|
file = new stored_file_1.StoredFile();
|
|
55
46
|
});
|
|
56
47
|
afterEach(() => mockCloudStorage.mockFileSystem = {});
|
|
57
|
-
it('should save a file from Blob', () =>
|
|
58
|
-
|
|
48
|
+
it('should save a file from Blob', async () => {
|
|
49
|
+
await file.save({ data: blobData1 });
|
|
59
50
|
expect(mockCloudStorage.mockFileSystem[file.id]).toBeDefined();
|
|
60
51
|
expect(mockCloudStorage.mockFileSystem[file.id]).toEqual(JSON.stringify(blobData1));
|
|
61
|
-
})
|
|
62
|
-
it('should save a file from File', () =>
|
|
63
|
-
|
|
52
|
+
});
|
|
53
|
+
it('should save a file from File', async () => {
|
|
54
|
+
await file.save({ data: fileData });
|
|
64
55
|
expect(mockCloudStorage.mockFileSystem[file.id]).toBeDefined();
|
|
65
56
|
expect(mockCloudStorage.mockFileSystem[file.id]).toEqual(JSON.stringify({ data: [blobData1], name: 'pepe.dat' }));
|
|
66
57
|
expect(file.originalFileName).toEqual('pepe.dat');
|
|
67
58
|
expect(file.url).toEqual('mock-data-folder/pepe.dat');
|
|
68
|
-
})
|
|
69
|
-
it('should get a url', () =>
|
|
70
|
-
|
|
59
|
+
});
|
|
60
|
+
it('should get a url', async () => {
|
|
61
|
+
await file.save({ data: blobData1 });
|
|
71
62
|
expect(file.url).toEqual('mock-data-folder/' + file.id);
|
|
72
|
-
})
|
|
73
|
-
it('should report metadata', () =>
|
|
74
|
-
|
|
63
|
+
});
|
|
64
|
+
it('should report metadata', async () => {
|
|
65
|
+
await file.save({ data: blobData1, fileName: 'test.dat' });
|
|
75
66
|
expect(file.originalFileName).toEqual('test.dat');
|
|
76
67
|
expect(file.provider.className).toEqual('MockCloudStorage');
|
|
77
|
-
})
|
|
78
|
-
it('should delete file', () =>
|
|
79
|
-
|
|
68
|
+
});
|
|
69
|
+
it('should delete file', async () => {
|
|
70
|
+
await file.save({ data: blobData1 });
|
|
80
71
|
expect(mockCloudStorage.mockFileSystem[file.id]).toBeDefined();
|
|
81
|
-
|
|
72
|
+
await file.delete();
|
|
82
73
|
expect(file.url).toBeUndefined();
|
|
83
74
|
expect(mockCloudStorage.mockFileSystem[file.id]).not.toBeDefined();
|
|
84
|
-
})
|
|
85
|
-
it('should throw if not stored file', () =>
|
|
75
|
+
});
|
|
76
|
+
it('should throw if not stored file', async () => {
|
|
86
77
|
let thrown = false;
|
|
87
78
|
try {
|
|
88
|
-
|
|
79
|
+
await file.delete();
|
|
89
80
|
}
|
|
90
|
-
catch
|
|
81
|
+
catch {
|
|
91
82
|
thrown = true;
|
|
92
83
|
}
|
|
93
84
|
expect(thrown).toBeTruthy();
|
|
94
|
-
})
|
|
95
|
-
it('should overwrite file on subsequent writes', () =>
|
|
85
|
+
});
|
|
86
|
+
it('should overwrite file on subsequent writes', async () => {
|
|
96
87
|
const deleteSpy = jest.spyOn(file, 'delete');
|
|
97
|
-
|
|
88
|
+
await file.save({ data: 'first write' });
|
|
98
89
|
expect(deleteSpy).not.toHaveBeenCalled();
|
|
99
90
|
expect(mockCloudStorage.mockFileSystem[file.id]).toEqual('"first write"');
|
|
100
|
-
|
|
91
|
+
await file.save({ data: 'second write' });
|
|
101
92
|
expect(deleteSpy).toHaveBeenCalled();
|
|
102
93
|
expect(mockCloudStorage.mockFileSystem[file.id]).toEqual('"second write"');
|
|
103
|
-
})
|
|
104
|
-
it('should save from pending file', () =>
|
|
94
|
+
});
|
|
95
|
+
it('should save from pending file', async () => {
|
|
105
96
|
file.setDataToStore(fileData);
|
|
106
|
-
|
|
97
|
+
await file.save();
|
|
107
98
|
expect(mockCloudStorage.mockFileSystem[file.id]).toBeDefined();
|
|
108
99
|
expect(mockCloudStorage.mockFileSystem[file.id]).toEqual(JSON.stringify({ data: [blobData1], name: 'pepe.dat' }));
|
|
109
|
-
})
|
|
100
|
+
});
|
|
110
101
|
describe('Notify on change', () => {
|
|
111
102
|
let spy;
|
|
112
103
|
beforeEach(() => {
|
|
@@ -122,22 +113,22 @@ describe('Cloud Storage', () => {
|
|
|
122
113
|
storedFile: file
|
|
123
114
|
});
|
|
124
115
|
});
|
|
125
|
-
it('should notify on data store', () =>
|
|
126
|
-
|
|
116
|
+
it('should notify on data store', async () => {
|
|
117
|
+
await file.save(fileData);
|
|
127
118
|
expect(spy).toHaveBeenNthCalledWith(1, {
|
|
128
119
|
event: stored_file_1.StoredFileEvent.stored,
|
|
129
120
|
storedFile: file
|
|
130
121
|
});
|
|
131
|
-
})
|
|
132
|
-
it('should notify on delete', () =>
|
|
133
|
-
|
|
122
|
+
});
|
|
123
|
+
it('should notify on delete', async () => {
|
|
124
|
+
await file.save(fileData);
|
|
134
125
|
spy.mockClear();
|
|
135
|
-
|
|
126
|
+
await file.delete();
|
|
136
127
|
expect(spy).toHaveBeenNthCalledWith(1, {
|
|
137
128
|
event: stored_file_1.StoredFileEvent.deleted,
|
|
138
129
|
storedFile: file
|
|
139
130
|
});
|
|
140
|
-
})
|
|
131
|
+
});
|
|
141
132
|
});
|
|
142
133
|
describe('Streaming', () => {
|
|
143
134
|
const database = {};
|
|
@@ -148,35 +139,35 @@ describe('Cloud Storage', () => {
|
|
|
148
139
|
testObj = new Test();
|
|
149
140
|
model = store_1.Store.getModel(testObj);
|
|
150
141
|
});
|
|
151
|
-
it('should save object with StoredFile', () =>
|
|
152
|
-
|
|
153
|
-
|
|
142
|
+
it('should save object with StoredFile', async () => {
|
|
143
|
+
await testObj.file.save({ data: blobData1, fileName: 'test.dat' });
|
|
144
|
+
await model.save(testObj);
|
|
154
145
|
expect(database[testObj.className][testObj.id].file).toBeDefined();
|
|
155
146
|
expect(database[testObj.className][testObj.id].file.reference).toEqual(testObj.file.id);
|
|
156
147
|
expect(database[testObj.className][testObj.id].file.url).toEqual('mock-data-folder/' + testObj.file.id);
|
|
157
148
|
expect(database[testObj.className][testObj.id].file.cloudStorageProviderName).toEqual('MockCloudStorage');
|
|
158
149
|
expect(database[testObj.className][testObj.id].file.originalFileName).toEqual('test.dat');
|
|
159
|
-
})
|
|
160
|
-
it('should load object with StoredFile', () =>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const newTestObj =
|
|
150
|
+
});
|
|
151
|
+
it('should load object with StoredFile', async () => {
|
|
152
|
+
await testObj.file.save({ data: blobData1, fileName: 'test.dat' });
|
|
153
|
+
await model.save(testObj);
|
|
154
|
+
const newTestObj = await model.findById(testObj.id);
|
|
164
155
|
expect(newTestObj.file).toBeInstanceOf(stored_file_1.StoredFile);
|
|
165
156
|
expect(newTestObj.file.url).toEqual('mock-data-folder/' + testObj.file.id);
|
|
166
|
-
})
|
|
167
|
-
it('should replace file on save after load', () =>
|
|
157
|
+
});
|
|
158
|
+
it('should replace file on save after load', async () => {
|
|
168
159
|
const deleteSpy = jest.spyOn(testObj.file, 'delete');
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const newTestObj =
|
|
160
|
+
await testObj.file.save({ data: blobData1, fileName: 'test.dat' });
|
|
161
|
+
await model.save(testObj);
|
|
162
|
+
const newTestObj = await model.findById(testObj.id);
|
|
172
163
|
expect(newTestObj.file).toBeInstanceOf(stored_file_1.StoredFile);
|
|
173
164
|
expect(newTestObj.file.url).toEqual('mock-data-folder/' + testObj.file.id);
|
|
174
165
|
expect(deleteSpy).not.toHaveBeenCalled();
|
|
175
166
|
testObj.file.setDataToStore(blobData2);
|
|
176
|
-
|
|
167
|
+
await testObj.file.save();
|
|
177
168
|
expect(mockCloudStorage.mockFileSystem[testObj.file.id]).toEqual(JSON.stringify(blobData2));
|
|
178
169
|
expect(deleteSpy).toHaveBeenCalled();
|
|
179
|
-
})
|
|
170
|
+
});
|
|
180
171
|
});
|
|
181
172
|
});
|
|
182
173
|
//# sourceMappingURL=cloud-storage.spec.js.map
|