@appsemble/cli 0.29.11 → 0.30.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/README.md +10 -10
- package/commands/app/create.d.ts +1 -1
- package/commands/app/create.js +5 -5
- package/commands/{team → group}/create.d.ts +3 -3
- package/commands/{team → group}/create.js +5 -5
- package/commands/{team → group}/delete.d.ts +3 -3
- package/commands/{team → group}/delete.js +5 -5
- package/commands/{team → group}/index.d.ts +2 -2
- package/commands/{team → group}/index.js +4 -4
- package/commands/{team → group}/member/delete.d.ts +3 -3
- package/commands/{team → group}/member/delete.js +5 -5
- package/commands/{team → group}/member/index.d.ts +1 -1
- package/commands/{team → group}/member/index.js +1 -3
- package/commands/{team → group}/member/invite.d.ts +3 -3
- package/commands/{team → group}/member/invite.js +5 -5
- package/commands/{team → group}/update.d.ts +3 -3
- package/commands/{team → group}/update.js +7 -7
- package/commands/migrateAppDefinitions.d.ts +13 -0
- package/commands/migrateAppDefinitions.js +73 -0
- package/commands/serve.d.ts +1 -1
- package/commands/serve.js +16 -16
- package/index.js +4 -2
- package/lib/app.js +13 -3
- package/lib/app.test.js +1266 -1262
- package/lib/asset.js +4 -2
- package/lib/asset.test.js +70 -67
- package/lib/block.test.js +144 -142
- package/lib/config.test.js +205 -203
- package/lib/createServers.js +3 -1
- package/lib/group.d.ts +61 -0
- package/lib/group.js +55 -0
- package/lib/group.test.js +610 -0
- package/lib/organization.test.js +189 -187
- package/lib/resource.js +3 -1
- package/lib/resource.test.js +322 -320
- package/lib/serverImport.d.ts +1 -1
- package/package.json +8 -7
- package/server/argv.d.ts +4 -4
- package/server/argv.js +1 -1
- package/server/controllers/apps/actions/index.d.ts +5 -0
- package/server/controllers/apps/actions/index.js +6 -0
- package/server/controllers/apps/actions/proxyDelete.d.ts +2 -0
- package/server/controllers/apps/actions/proxyDelete.js +4 -0
- package/server/controllers/apps/actions/proxyGet.d.ts +2 -0
- package/server/controllers/apps/actions/proxyGet.js +4 -0
- package/server/controllers/apps/actions/proxyPatch.d.ts +2 -0
- package/server/controllers/apps/actions/proxyPatch.js +4 -0
- package/server/controllers/apps/actions/proxyPost.d.ts +2 -0
- package/server/controllers/apps/actions/proxyPost.js +4 -0
- package/server/controllers/apps/actions/proxyPut.d.ts +2 -0
- package/server/controllers/apps/actions/proxyPut.js +4 -0
- package/server/controllers/apps/index.d.ts +2 -0
- package/server/controllers/apps/index.js +3 -0
- package/server/controllers/apps/members/current/getCurrentAppMember.d.ts +2 -0
- package/server/controllers/apps/members/current/getCurrentAppMember.js +4 -0
- package/server/controllers/apps/members/current/index.d.ts +1 -0
- package/server/controllers/apps/members/current/index.js +2 -0
- package/server/controllers/apps/members/index.d.ts +1 -0
- package/server/controllers/apps/members/index.js +2 -0
- package/server/controllers/common/apps/assets/getAppAssetById.d.ts +2 -0
- package/server/controllers/common/apps/assets/getAppAssetById.js +4 -0
- package/server/controllers/common/apps/assets/index.d.ts +1 -0
- package/server/controllers/common/apps/assets/index.js +2 -0
- package/server/controllers/common/apps/groups/getAppGroups.d.ts +2 -0
- package/server/controllers/common/apps/groups/getAppGroups.js +4 -0
- package/server/controllers/common/apps/groups/index.d.ts +1 -0
- package/server/controllers/common/apps/groups/index.js +2 -0
- package/server/controllers/common/apps/index.d.ts +5 -0
- package/server/controllers/common/apps/index.js +6 -0
- package/server/controllers/common/apps/messages/getAppMessages.d.ts +2 -0
- package/server/controllers/common/apps/messages/getAppMessages.js +4 -0
- package/server/controllers/common/apps/messages/index.d.ts +1 -0
- package/server/controllers/common/apps/messages/index.js +2 -0
- package/server/controllers/common/apps/resources/countAppResources.d.ts +2 -0
- package/server/controllers/common/apps/resources/countAppResources.js +4 -0
- package/server/controllers/common/apps/resources/createAppResource.d.ts +2 -0
- package/server/controllers/common/apps/resources/createAppResource.js +4 -0
- package/server/controllers/common/apps/resources/deleteAppResource.d.ts +2 -0
- package/server/controllers/common/apps/resources/deleteAppResource.js +4 -0
- package/server/controllers/common/apps/resources/getAppResourceById.d.ts +2 -0
- package/server/controllers/common/apps/resources/getAppResourceById.js +4 -0
- package/server/controllers/common/apps/resources/index.d.ts +6 -0
- package/server/controllers/common/apps/resources/index.js +7 -0
- package/server/controllers/common/apps/resources/queryAppResources.d.ts +2 -0
- package/server/controllers/common/apps/resources/queryAppResources.js +4 -0
- package/server/controllers/common/apps/resources/updateAppResource.d.ts +2 -0
- package/server/controllers/common/apps/resources/updateAppResource.js +4 -0
- package/server/controllers/common/apps/variables/getAppVariables.js +4 -0
- package/server/controllers/common/apps/variables/index.d.ts +1 -0
- package/server/controllers/common/apps/variables/index.js +2 -0
- package/server/controllers/common/index.d.ts +1 -0
- package/server/controllers/common/index.js +2 -0
- package/server/controllers/index.d.ts +3 -8
- package/server/controllers/index.js +3 -8
- package/server/controllers/main/apps/assets/createAppAsset.d.ts +2 -0
- package/server/controllers/main/apps/assets/createAppAsset.js +4 -0
- package/server/controllers/main/apps/assets/index.d.ts +1 -0
- package/server/controllers/main/apps/assets/index.js +2 -0
- package/server/controllers/main/apps/index.d.ts +1 -0
- package/server/controllers/main/apps/index.js +2 -0
- package/server/controllers/main/index.d.ts +1 -0
- package/server/controllers/main/index.js +2 -0
- package/server/options/checkAppMemberAppPermissions.d.ts +1 -0
- package/server/options/checkAppMemberAppPermissions.js +4 -0
- package/server/options/checkAppPermissions.d.ts +1 -0
- package/server/options/checkAppPermissions.js +4 -0
- package/server/options/checkAuthSubjectAppPermissions.d.ts +1 -0
- package/server/options/checkAuthSubjectAppPermissions.js +4 -0
- package/server/options/checkUserOrganizationPermissions.d.ts +1 -0
- package/server/options/checkUserOrganizationPermissions.js +4 -0
- package/server/options/getAppGroups.d.ts +2 -0
- package/server/options/getAppGroups.js +4 -0
- package/server/options/getCurrentAppMember.d.ts +3 -0
- package/server/options/getCurrentAppMember.js +4 -0
- package/server/options/index.d.ts +6 -5
- package/server/options/index.js +6 -5
- package/server/options/options.js +7 -6
- package/templates/apps/empty/app-definition.yaml +2 -2
- package/templates/blocks/mini-jsx/package.json +1 -1
- package/templates/blocks/preact/package.json +2 -2
- package/templates/blocks/vanilla/package.json +1 -1
- package/vitest.setup.js +11 -0
- package/commands/team/member/update.d.ts +0 -16
- package/commands/team/member/update.js +0 -46
- package/lib/team.d.ts +0 -61
- package/lib/team.js +0 -83
- package/lib/team.test.js +0 -625
- package/server/controllers/action.d.ts +0 -6
- package/server/controllers/action.js +0 -8
- package/server/controllers/appMembers.d.ts +0 -2
- package/server/controllers/appMembers.js +0 -4
- package/server/controllers/appMessages.d.ts +0 -2
- package/server/controllers/appMessages.js +0 -4
- package/server/controllers/appVariables.js +0 -4
- package/server/controllers/assets.d.ts +0 -4
- package/server/controllers/assets.js +0 -6
- package/server/controllers/oauth2Provider.d.ts +0 -2
- package/server/controllers/oauth2Provider.js +0 -4
- package/server/controllers/resources.d.ts +0 -7
- package/server/controllers/resources.js +0 -9
- package/server/controllers/teams.d.ts +0 -2
- package/server/controllers/teams.js +0 -4
- package/server/options/checkRole.d.ts +0 -1
- package/server/options/checkRole.js +0 -2
- package/server/options/checkRole.test.d.ts +0 -1
- package/server/options/checkRole.test.js +0 -13
- package/server/options/getAppMembers.d.ts +0 -3
- package/server/options/getAppMembers.js +0 -4
- package/server/options/getAppTeams.d.ts +0 -2
- package/server/options/getAppTeams.js +0 -4
- package/server/options/getAppUserInfo.d.ts +0 -3
- package/server/options/getAppUserInfo.js +0 -4
- package/server/options/verifyResourceActionPermission.d.ts +0 -1
- package/server/options/verifyResourceActionPermission.js +0 -2
- /package/lib/{team.test.d.ts → group.test.d.ts} +0 -0
- /package/server/controllers/{appVariables.d.ts → common/apps/variables/getAppVariables.d.ts} +0 -0
package/lib/organization.test.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createFixtureStream, readFixture } from '@appsemble/node-utils';
|
|
2
|
-
import { createServer, createTestUser, models, setArgv
|
|
2
|
+
import { createServer, createTestUser, models, setArgv } from '@appsemble/server';
|
|
3
|
+
import { PredefinedOrganizationRole } from '@appsemble/types';
|
|
3
4
|
import { setTestApp } from 'axios-test-instance';
|
|
4
5
|
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
6
|
import { initAxios } from './initAxios.js';
|
|
@@ -9,85 +10,85 @@ const argv = { host: 'http://localhost', secret: 'test', aesSecret: 'testSecret'
|
|
|
9
10
|
let user;
|
|
10
11
|
let testApp;
|
|
11
12
|
const { Organization, OrganizationMember } = models;
|
|
12
|
-
|
|
13
|
-
beforeAll(() => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
17
|
-
beforeEach(async () => {
|
|
18
|
-
vi.clearAllTimers();
|
|
19
|
-
vi.setSystemTime(0);
|
|
20
|
-
const server = await createServer();
|
|
21
|
-
testApp = await setTestApp(server);
|
|
22
|
-
initAxios({ remote: testApp.defaults.baseURL });
|
|
23
|
-
user = await createTestUser();
|
|
24
|
-
});
|
|
25
|
-
afterAll(() => {
|
|
26
|
-
vi.useRealTimers();
|
|
27
|
-
});
|
|
28
|
-
describe('createOrganization', () => {
|
|
29
|
-
it('should create a new organization', async () => {
|
|
30
|
-
await authorizeCLI('organizations:write', testApp);
|
|
31
|
-
await createOrganization({
|
|
32
|
-
description: 'test description',
|
|
33
|
-
id: 'test',
|
|
34
|
-
name: 'Test',
|
|
35
|
-
email: 'test@example.com',
|
|
36
|
-
icon: createFixtureStream('apps/tux.png'),
|
|
37
|
-
website: 'https://example.com',
|
|
38
|
-
});
|
|
39
|
-
const organization = await Organization.findOne();
|
|
40
|
-
expect(organization).toMatchObject({
|
|
41
|
-
description: 'test description',
|
|
42
|
-
email: 'test@example.com',
|
|
43
|
-
icon: await readFixture('apps/tux.png'),
|
|
44
|
-
id: 'test',
|
|
45
|
-
name: 'Test',
|
|
46
|
-
website: 'https://example.com',
|
|
47
|
-
});
|
|
13
|
+
describe('organization', () => {
|
|
14
|
+
beforeAll(() => {
|
|
15
|
+
vi.useFakeTimers();
|
|
16
|
+
setArgv(argv);
|
|
48
17
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
18
|
+
beforeEach(async () => {
|
|
19
|
+
vi.clearAllTimers();
|
|
20
|
+
vi.setSystemTime(0);
|
|
21
|
+
const server = await createServer();
|
|
22
|
+
testApp = await setTestApp(server);
|
|
23
|
+
initAxios({ remote: testApp.defaults.baseURL });
|
|
24
|
+
user = await createTestUser();
|
|
25
|
+
});
|
|
26
|
+
afterAll(() => {
|
|
54
27
|
vi.useRealTimers();
|
|
55
|
-
await authorizeCLI('organizations:write', testApp);
|
|
56
|
-
await expect(() => createOrganization({
|
|
57
|
-
description: 'test description',
|
|
58
|
-
id: organization.id,
|
|
59
|
-
name: 'Test',
|
|
60
|
-
email: 'test@example.com',
|
|
61
|
-
icon: null,
|
|
62
|
-
website: 'https://example.com',
|
|
63
|
-
})).rejects.toThrow('Request failed with status code 409');
|
|
64
|
-
vi.useFakeTimers();
|
|
65
28
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
29
|
+
describe('createOrganization', () => {
|
|
30
|
+
it('should create a new organization', async () => {
|
|
31
|
+
await authorizeCLI('organizations:write', testApp);
|
|
32
|
+
await createOrganization({
|
|
33
|
+
description: 'test description',
|
|
34
|
+
id: 'test',
|
|
35
|
+
name: 'Test',
|
|
36
|
+
email: 'test@example.com',
|
|
37
|
+
icon: createFixtureStream('apps/tux.png'),
|
|
38
|
+
website: 'https://example.com',
|
|
39
|
+
});
|
|
40
|
+
const organization = await Organization.findOne();
|
|
41
|
+
expect(organization).toMatchObject({
|
|
42
|
+
description: 'test description',
|
|
43
|
+
email: 'test@example.com',
|
|
44
|
+
icon: await readFixture('apps/tux.png'),
|
|
45
|
+
id: 'test',
|
|
46
|
+
name: 'Test',
|
|
47
|
+
website: 'https://example.com',
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
it('should not create a new organization with duplicate id', async () => {
|
|
51
|
+
const organization = await Organization.create({
|
|
52
|
+
id: 'test',
|
|
53
|
+
name: 'Test',
|
|
54
|
+
});
|
|
55
|
+
vi.useRealTimers();
|
|
56
|
+
await authorizeCLI('organizations:write', testApp);
|
|
57
|
+
await expect(() => createOrganization({
|
|
58
|
+
description: 'test description',
|
|
59
|
+
id: organization.id,
|
|
60
|
+
name: 'Test',
|
|
61
|
+
email: 'test@example.com',
|
|
62
|
+
icon: null,
|
|
63
|
+
website: 'https://example.com',
|
|
64
|
+
})).rejects.toThrow('Request failed with status code 409');
|
|
65
|
+
vi.useFakeTimers();
|
|
77
66
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
67
|
+
});
|
|
68
|
+
describe('updateOrganization', () => {
|
|
69
|
+
it('should update an existing organization', async () => {
|
|
70
|
+
const organization = await Organization.create({
|
|
71
|
+
id: 'test',
|
|
72
|
+
name: 'Test',
|
|
73
|
+
});
|
|
74
|
+
await OrganizationMember.create({
|
|
75
|
+
OrganizationId: organization.id,
|
|
76
|
+
UserId: user.id,
|
|
77
|
+
role: PredefinedOrganizationRole.Owner,
|
|
78
|
+
});
|
|
79
|
+
await authorizeCLI('organizations:write', testApp);
|
|
80
|
+
await updateOrganization({
|
|
81
|
+
id: organization.id,
|
|
82
|
+
name: 'Test changed',
|
|
83
|
+
description: 'Description Changed',
|
|
84
|
+
email: 'test@example.com',
|
|
85
|
+
website: null,
|
|
86
|
+
icon: createFixtureStream('apps/tux.png'),
|
|
87
|
+
});
|
|
88
|
+
await organization.reload();
|
|
89
|
+
expect(organization.dataValues).toMatchInlineSnapshot({
|
|
90
|
+
icon: expect.any(Buffer),
|
|
91
|
+
}, `
|
|
91
92
|
{
|
|
92
93
|
"created": 1970-01-01T00:00:00.000Z,
|
|
93
94
|
"deleted": null,
|
|
@@ -100,120 +101,121 @@ describe('updateOrganization', () => {
|
|
|
100
101
|
"website": null,
|
|
101
102
|
}
|
|
102
103
|
`);
|
|
103
|
-
});
|
|
104
|
-
it('should throw if the organization does not exist', async () => {
|
|
105
|
-
const organization = await Organization.create({
|
|
106
|
-
id: 'test',
|
|
107
|
-
name: 'Test',
|
|
108
104
|
});
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
it('should throw if the organization does not exist', async () => {
|
|
106
|
+
const organization = await Organization.create({
|
|
107
|
+
id: 'test',
|
|
108
|
+
name: 'Test',
|
|
109
|
+
});
|
|
110
|
+
await OrganizationMember.create({
|
|
111
|
+
OrganizationId: organization.id,
|
|
112
|
+
UserId: user.id,
|
|
113
|
+
role: PredefinedOrganizationRole.Owner,
|
|
114
|
+
});
|
|
115
|
+
await organization.destroy();
|
|
116
|
+
await authorizeCLI('organizations:write', testApp);
|
|
117
|
+
await expect(() => updateOrganization({
|
|
118
|
+
id: organization.id,
|
|
119
|
+
name: 'Test changed',
|
|
120
|
+
description: null,
|
|
121
|
+
email: 'test@example.com',
|
|
122
|
+
website: null,
|
|
123
|
+
icon: null,
|
|
124
|
+
})).rejects.toThrow('Request failed with status code 404');
|
|
125
|
+
});
|
|
126
|
+
it('should throw if the user is not authorized', async () => {
|
|
127
|
+
const organization = await Organization.create({
|
|
128
|
+
id: 'test',
|
|
129
|
+
name: 'Test',
|
|
130
|
+
});
|
|
131
|
+
await OrganizationMember.create({
|
|
132
|
+
OrganizationId: organization.id,
|
|
133
|
+
UserId: user.id,
|
|
134
|
+
role: PredefinedOrganizationRole.Owner,
|
|
135
|
+
});
|
|
136
|
+
await expect(() => updateOrganization({
|
|
137
|
+
id: organization.id,
|
|
138
|
+
name: 'Test changed',
|
|
139
|
+
description: null,
|
|
140
|
+
email: 'test@example.com',
|
|
141
|
+
website: null,
|
|
142
|
+
icon: null,
|
|
143
|
+
})).rejects.toThrow('Request failed with status code 401');
|
|
113
144
|
});
|
|
114
|
-
await organization.destroy();
|
|
115
|
-
await authorizeCLI('organizations:write', testApp);
|
|
116
|
-
await expect(() => updateOrganization({
|
|
117
|
-
id: organization.id,
|
|
118
|
-
name: 'Test changed',
|
|
119
|
-
description: null,
|
|
120
|
-
email: 'test@example.com',
|
|
121
|
-
website: null,
|
|
122
|
-
icon: null,
|
|
123
|
-
})).rejects.toThrow('Request failed with status code 404');
|
|
124
145
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
});
|
|
199
|
-
it('should throw if there is an error', async () => {
|
|
200
|
-
const organization = await Organization.create({
|
|
201
|
-
id: 'test',
|
|
202
|
-
name: 'Test',
|
|
203
|
-
});
|
|
204
|
-
await authorizeCLI('organizations:write', testApp);
|
|
205
|
-
// Fails because the organization member does not exist.
|
|
206
|
-
await expect(() => upsertOrganization({
|
|
207
|
-
id: organization.id,
|
|
208
|
-
name: 'Test changed',
|
|
209
|
-
description: null,
|
|
210
|
-
email: 'test@example.com',
|
|
211
|
-
website: 'https://www.example.com',
|
|
212
|
-
icon: null,
|
|
213
|
-
})).rejects.toThrow('Request failed with status code 403');
|
|
214
|
-
expect(organization).toMatchObject({
|
|
215
|
-
id: 'test',
|
|
216
|
-
name: 'Test',
|
|
146
|
+
describe('upsertOrganization', () => {
|
|
147
|
+
it('should create a new organization if doesn’t exist already', async () => {
|
|
148
|
+
await authorizeCLI('organizations:write', testApp);
|
|
149
|
+
await upsertOrganization({
|
|
150
|
+
description: 'test description',
|
|
151
|
+
id: 'test',
|
|
152
|
+
name: 'Test',
|
|
153
|
+
email: 'test@example.com',
|
|
154
|
+
icon: null,
|
|
155
|
+
website: 'https://example.com',
|
|
156
|
+
});
|
|
157
|
+
const organization = await Organization.findOne();
|
|
158
|
+
expect(organization).toMatchObject({
|
|
159
|
+
id: 'test',
|
|
160
|
+
description: 'test description',
|
|
161
|
+
name: 'Test',
|
|
162
|
+
email: 'test@example.com',
|
|
163
|
+
icon: null,
|
|
164
|
+
website: 'https://example.com',
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
it('should update an existing organization', async () => {
|
|
168
|
+
const organization = await Organization.create({
|
|
169
|
+
id: 'test',
|
|
170
|
+
name: 'Test',
|
|
171
|
+
});
|
|
172
|
+
await OrganizationMember.create({
|
|
173
|
+
OrganizationId: organization.id,
|
|
174
|
+
UserId: user.id,
|
|
175
|
+
role: PredefinedOrganizationRole.Owner,
|
|
176
|
+
});
|
|
177
|
+
await authorizeCLI('organizations:write', testApp);
|
|
178
|
+
await upsertOrganization({
|
|
179
|
+
id: organization.id,
|
|
180
|
+
name: 'Test changed',
|
|
181
|
+
description: null,
|
|
182
|
+
email: 'test@example.com',
|
|
183
|
+
website: null,
|
|
184
|
+
icon: null,
|
|
185
|
+
});
|
|
186
|
+
expect(organization).toMatchObject({
|
|
187
|
+
id: 'test',
|
|
188
|
+
name: 'Test',
|
|
189
|
+
});
|
|
190
|
+
await organization.reload();
|
|
191
|
+
expect(organization).toMatchObject({
|
|
192
|
+
id: organization.id,
|
|
193
|
+
name: 'Test changed',
|
|
194
|
+
description: null,
|
|
195
|
+
email: 'test@example.com',
|
|
196
|
+
website: null,
|
|
197
|
+
icon: null,
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
it('should throw if there is an error', async () => {
|
|
201
|
+
const organization = await Organization.create({
|
|
202
|
+
id: 'test',
|
|
203
|
+
name: 'Test',
|
|
204
|
+
});
|
|
205
|
+
await authorizeCLI('organizations:write', testApp);
|
|
206
|
+
// Fails because the organization member does not exist.
|
|
207
|
+
await expect(() => upsertOrganization({
|
|
208
|
+
id: organization.id,
|
|
209
|
+
name: 'Test changed',
|
|
210
|
+
description: null,
|
|
211
|
+
email: 'test@example.com',
|
|
212
|
+
website: 'https://www.example.com',
|
|
213
|
+
icon: null,
|
|
214
|
+
})).rejects.toThrow('Request failed with status code 403');
|
|
215
|
+
expect(organization).toMatchObject({
|
|
216
|
+
id: 'test',
|
|
217
|
+
name: 'Test',
|
|
218
|
+
});
|
|
217
219
|
});
|
|
218
220
|
});
|
|
219
221
|
});
|
package/lib/resource.js
CHANGED
|
@@ -16,12 +16,13 @@ export async function publishResource({ appId, definition, path, publishedResour
|
|
|
16
16
|
}
|
|
17
17
|
logger.info(`Publishing resource(s) from ${path}`);
|
|
18
18
|
let data;
|
|
19
|
-
const endpoint = `/api/apps/${appId}
|
|
19
|
+
const endpoint = `/api/apps/${appId}/resources/${type}`;
|
|
20
20
|
try {
|
|
21
21
|
if (csv) {
|
|
22
22
|
const response = await axios.post(endpoint, resources, {
|
|
23
23
|
baseURL: remote,
|
|
24
24
|
headers: { 'content-type': 'text/csv' },
|
|
25
|
+
params: { seed },
|
|
25
26
|
});
|
|
26
27
|
data = response.data;
|
|
27
28
|
}
|
|
@@ -37,6 +38,7 @@ export async function publishResource({ appId, definition, path, publishedResour
|
|
|
37
38
|
}), {
|
|
38
39
|
baseURL: remote,
|
|
39
40
|
headers: { 'content-type': 'application/json' },
|
|
41
|
+
params: { seed },
|
|
40
42
|
});
|
|
41
43
|
data = response.data;
|
|
42
44
|
}
|