@budibase/worker 2.2.12-alpha.2 → 2.2.12
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/coverage/clover.xml +1238 -1291
- package/coverage/coverage-final.json +77 -81
- package/coverage/lcov-report/index.html +73 -73
- package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +212 -155
- package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/global/index.html +39 -39
- package/coverage/lcov-report/src/api/controllers/global/license.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +76 -76
- package/coverage/lcov-report/src/api/controllers/global/self.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +53 -53
- package/coverage/lcov-report/src/api/controllers/global/users.ts.html +27 -27
- package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/status.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +5 -5
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +23 -23
- package/coverage/lcov-report/src/api/routes/global/auth.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/global/configs.ts.html +16 -16
- package/coverage/lcov-report/src/api/routes/global/email.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/license.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/global/roles.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/global/self.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/global/templates.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/global/users.ts.html +16 -16
- package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.ts.html +19 -19
- package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/system/environment.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/system/restore.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/system/status.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
- package/coverage/lcov-report/src/api/routes/validation/users.ts.html +13 -13
- package/coverage/lcov-report/src/constants/index.html +9 -9
- package/coverage/lcov-report/src/constants/index.ts.html +49 -73
- package/coverage/lcov-report/src/constants/templates/index.html +19 -19
- package/coverage/lcov-report/src/constants/templates/index.ts.html +39 -39
- package/coverage/lcov-report/src/db/index.html +1 -1
- package/coverage/lcov-report/src/db/index.ts.html +8 -8
- package/coverage/lcov-report/src/environment.ts.html +22 -37
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/index.ts.html +43 -40
- package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +4 -4
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +17 -17
- package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/users/events.ts.html +46 -46
- package/coverage/lcov-report/src/sdk/users/index.html +15 -15
- package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
- package/coverage/lcov-report/src/sdk/users/users.ts.html +97 -148
- package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +80 -104
- package/coverage/lcov-report/src/tests/api/accounts.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/auth.ts.html +7 -7
- package/coverage/lcov-report/src/tests/api/base.ts.html +4 -4
- package/coverage/lcov-report/src/tests/api/configs.ts.html +8 -8
- package/coverage/lcov-report/src/tests/api/email.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/environment.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/index.html +11 -71
- package/coverage/lcov-report/src/tests/api/index.ts.html +28 -61
- package/coverage/lcov-report/src/tests/api/migrations.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/restore.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/self.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/status.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/tenants.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/users.ts.html +16 -16
- package/coverage/lcov-report/src/tests/controllers.ts.html +6 -6
- package/coverage/lcov-report/src/tests/index.html +10 -10
- package/coverage/lcov-report/src/tests/index.ts.html +9 -9
- package/coverage/lcov-report/src/tests/mocks/{email.ts.html → email.js.html} +5 -5
- package/coverage/lcov-report/src/tests/mocks/index.html +2 -2
- package/coverage/lcov-report/src/tests/mocks/index.ts.html +7 -7
- package/coverage/lcov-report/src/tests/structures/configs.ts.html +10 -10
- package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
- package/coverage/lcov-report/src/tests/structures/index.html +16 -16
- package/coverage/lcov-report/src/tests/structures/index.ts.html +11 -11
- package/coverage/lcov-report/src/tests/structures/users.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/appService.ts.html +10 -10
- package/coverage/lcov-report/src/utilities/email.ts.html +15 -15
- package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/index.html +1 -1
- package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/users.ts.html +3 -3
- package/coverage/lcov.info +1779 -1949
- package/jest.config.ts +0 -2
- package/package.json +7 -8
- package/src/api/controllers/global/configs.ts +131 -112
- package/src/api/controllers/global/users.ts +1 -1
- package/src/api/routes/global/license.ts +1 -1
- package/src/api/routes/global/tests/license.spec.ts +2 -0
- package/src/api/routes/global/tests/roles.spec.ts +5 -66
- package/src/api/routes/global/tests/templates.spec.ts +9 -89
- package/src/api/routes/global/tests/users.spec.ts +2 -2
- package/src/constants/index.ts +5 -13
- package/src/environment.ts +0 -5
- package/src/index.ts +2 -1
- package/src/sdk/users/users.ts +1 -18
- package/src/tests/TestConfiguration.ts +1 -9
- package/src/tests/api/index.ts +1 -12
- package/src/tests/jestSetup.ts +1 -3
- package/src/tests/mocks/{email.ts → email.js} +1 -1
- package/src/tests/mocks/index.ts +3 -3
- package/src/tests/structures/configs.ts +2 -2
- package/src/tests/structures/groups.ts +1 -1
- package/src/tests/structures/users.ts +1 -1
- package/tsconfig.json +1 -0
- package/coverage/lcov-report/src/tests/api/groups.ts.html +0 -163
- package/coverage/lcov-report/src/tests/api/license.ts.html +0 -136
- package/coverage/lcov-report/src/tests/api/roles.ts.html +0 -181
- package/coverage/lcov-report/src/tests/api/templates.ts.html +0 -175
- package/src/api/routes/global/tests/groups.spec.ts +0 -58
- package/src/tests/api/groups.ts +0 -26
- package/src/tests/api/license.ts +0 -17
- package/src/tests/api/roles.ts +0 -32
- package/src/tests/api/templates.ts +0 -30
package/src/constants/index.ts
CHANGED
|
@@ -27,14 +27,6 @@ export enum EmailTemplatePurpose {
|
|
|
27
27
|
CUSTOM = "custom",
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export enum TemplateMetadataNames {
|
|
31
|
-
BASE = "Base format",
|
|
32
|
-
PASSWORD_RECOVERY = "Password recovery",
|
|
33
|
-
WELCOME = "User welcome",
|
|
34
|
-
INVITATION = "User invitation",
|
|
35
|
-
CUSTOM = "Custom",
|
|
36
|
-
}
|
|
37
|
-
|
|
38
30
|
export enum InternalTemplateBinding {
|
|
39
31
|
PLATFORM_URL = "platformUrl",
|
|
40
32
|
COMPANY = "company",
|
|
@@ -101,7 +93,7 @@ export const TemplateBindings = {
|
|
|
101
93
|
export const TemplateMetadata = {
|
|
102
94
|
[TemplateType.EMAIL]: [
|
|
103
95
|
{
|
|
104
|
-
name:
|
|
96
|
+
name: "Base format",
|
|
105
97
|
description:
|
|
106
98
|
"This is the base template, all others are based on it. The {{ body }} will be replaced with another email template.",
|
|
107
99
|
category: "miscellaneous",
|
|
@@ -118,7 +110,7 @@ export const TemplateMetadata = {
|
|
|
118
110
|
],
|
|
119
111
|
},
|
|
120
112
|
{
|
|
121
|
-
name:
|
|
113
|
+
name: "Password recovery",
|
|
122
114
|
description:
|
|
123
115
|
"When a user requests a password reset they will receive an email built with this template.",
|
|
124
116
|
category: "user management",
|
|
@@ -137,7 +129,7 @@ export const TemplateMetadata = {
|
|
|
137
129
|
],
|
|
138
130
|
},
|
|
139
131
|
{
|
|
140
|
-
name:
|
|
132
|
+
name: "User welcome",
|
|
141
133
|
description:
|
|
142
134
|
"When a new user is added they will be sent a welcome email using this template.",
|
|
143
135
|
category: "user management",
|
|
@@ -145,7 +137,7 @@ export const TemplateMetadata = {
|
|
|
145
137
|
bindings: [],
|
|
146
138
|
},
|
|
147
139
|
{
|
|
148
|
-
name:
|
|
140
|
+
name: "User invitation",
|
|
149
141
|
description:
|
|
150
142
|
"When inviting a user via the email on-boarding this template will be used.",
|
|
151
143
|
category: "user management",
|
|
@@ -164,7 +156,7 @@ export const TemplateMetadata = {
|
|
|
164
156
|
],
|
|
165
157
|
},
|
|
166
158
|
{
|
|
167
|
-
name:
|
|
159
|
+
name: "Custom",
|
|
168
160
|
description:
|
|
169
161
|
"A custom template, this is currently used for SMTP email actions in automations.",
|
|
170
162
|
category: "automations",
|
package/src/environment.ts
CHANGED
|
@@ -91,11 +91,6 @@ for (let [key, value] of Object.entries(environment)) {
|
|
|
91
91
|
// @ts-ignore
|
|
92
92
|
environment[key] = 0
|
|
93
93
|
}
|
|
94
|
-
// handle the edge case of "false" to disable an environment variable
|
|
95
|
-
if (value === "false") {
|
|
96
|
-
// @ts-ignore
|
|
97
|
-
environment[key] = 0
|
|
98
|
-
}
|
|
99
94
|
}
|
|
100
95
|
|
|
101
96
|
export = environment
|
package/src/index.ts
CHANGED
|
@@ -24,7 +24,7 @@ import * as redis from "./utilities/redis"
|
|
|
24
24
|
const Sentry = require("@sentry/node")
|
|
25
25
|
const koaSession = require("koa-session")
|
|
26
26
|
const logger = require("koa-pino-logger")
|
|
27
|
-
|
|
27
|
+
const destroyable = require("server-destroy")
|
|
28
28
|
|
|
29
29
|
// this will setup http and https proxies form env variables
|
|
30
30
|
bootstrap()
|
|
@@ -79,6 +79,7 @@ server.on("close", async () => {
|
|
|
79
79
|
|
|
80
80
|
const shutdown = () => {
|
|
81
81
|
server.close()
|
|
82
|
+
// @ts-ignore
|
|
82
83
|
server.destroy()
|
|
83
84
|
}
|
|
84
85
|
|
package/src/sdk/users/users.ts
CHANGED
|
@@ -25,7 +25,6 @@ import {
|
|
|
25
25
|
InviteUsersRequest,
|
|
26
26
|
InviteUsersResponse,
|
|
27
27
|
MigrationType,
|
|
28
|
-
PlatformUser,
|
|
29
28
|
PlatformUserByEmail,
|
|
30
29
|
RowResponse,
|
|
31
30
|
SearchUsersRequest,
|
|
@@ -154,26 +153,10 @@ const buildUser = async (
|
|
|
154
153
|
return fullUser
|
|
155
154
|
}
|
|
156
155
|
|
|
157
|
-
// lookup, could be email or userId, either will return a doc
|
|
158
|
-
export const getPlatformUser = async (
|
|
159
|
-
identifier: string
|
|
160
|
-
): Promise<PlatformUser | null> => {
|
|
161
|
-
// use the view here and allow to find anyone regardless of casing
|
|
162
|
-
// Use lowercase to ensure email login is case insensitive
|
|
163
|
-
const response = dbUtils.queryPlatformView(
|
|
164
|
-
ViewName.PLATFORM_USERS_LOWERCASE,
|
|
165
|
-
{
|
|
166
|
-
keys: [identifier.toLowerCase()],
|
|
167
|
-
include_docs: true,
|
|
168
|
-
}
|
|
169
|
-
) as Promise<PlatformUser>
|
|
170
|
-
return response
|
|
171
|
-
}
|
|
172
|
-
|
|
173
156
|
const validateUniqueUser = async (email: string, tenantId: string) => {
|
|
174
157
|
// check budibase users in other tenants
|
|
175
158
|
if (env.MULTI_TENANCY) {
|
|
176
|
-
const tenantUser = await
|
|
159
|
+
const tenantUser = await tenancy.getTenantUser(email)
|
|
177
160
|
if (tenantUser != null && tenantUser.tenantId !== tenantId) {
|
|
178
161
|
throw `Unavailable`
|
|
179
162
|
}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
// init the licensing mock
|
|
4
|
-
import * as pro from "@budibase/pro"
|
|
5
|
-
mocks.licenses.init(pro)
|
|
6
|
-
|
|
7
|
-
// use unlimited license by default
|
|
8
|
-
mocks.licenses.useUnlimited()
|
|
9
|
-
|
|
1
|
+
import "./mocks"
|
|
10
2
|
import * as dbConfig from "../db"
|
|
11
3
|
dbConfig.init()
|
|
12
4
|
import env from "../environment"
|
package/src/tests/api/index.ts
CHANGED
|
@@ -10,10 +10,7 @@ import { MigrationAPI } from "./migrations"
|
|
|
10
10
|
import { StatusAPI } from "./status"
|
|
11
11
|
import { RestoreAPI } from "./restore"
|
|
12
12
|
import { TenantAPI } from "./tenants"
|
|
13
|
-
|
|
14
|
-
import { RolesAPI } from "./roles"
|
|
15
|
-
import { TemplatesAPI } from "./templates"
|
|
16
|
-
import { LicenseAPI } from "./license"
|
|
13
|
+
|
|
17
14
|
export default class API {
|
|
18
15
|
accounts: AccountAPI
|
|
19
16
|
auth: AuthAPI
|
|
@@ -26,10 +23,6 @@ export default class API {
|
|
|
26
23
|
status: StatusAPI
|
|
27
24
|
restore: RestoreAPI
|
|
28
25
|
tenants: TenantAPI
|
|
29
|
-
groups: GroupsAPI
|
|
30
|
-
roles: RolesAPI
|
|
31
|
-
templates: TemplatesAPI
|
|
32
|
-
license: LicenseAPI
|
|
33
26
|
|
|
34
27
|
constructor(config: TestConfiguration) {
|
|
35
28
|
this.accounts = new AccountAPI(config)
|
|
@@ -43,9 +36,5 @@ export default class API {
|
|
|
43
36
|
this.status = new StatusAPI(config)
|
|
44
37
|
this.restore = new RestoreAPI(config)
|
|
45
38
|
this.tenants = new TenantAPI(config)
|
|
46
|
-
this.groups = new GroupsAPI(config)
|
|
47
|
-
this.roles = new RolesAPI(config)
|
|
48
|
-
this.templates = new TemplatesAPI(config)
|
|
49
|
-
this.license = new LicenseAPI(config)
|
|
50
39
|
}
|
|
51
40
|
}
|
package/src/tests/jestSetup.ts
CHANGED
|
@@ -22,9 +22,7 @@ mocks.fetch.enable()
|
|
|
22
22
|
const tk = require("timekeeper")
|
|
23
23
|
tk.freeze(mocks.date.MOCK_DATE)
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
global.console.log = jest.fn() // console.log are ignored in tests
|
|
27
|
-
}
|
|
25
|
+
global.console.log = jest.fn() // console.log are ignored in tests
|
|
28
26
|
|
|
29
27
|
if (!process.env.CI) {
|
|
30
28
|
// set a longer timeout in dev for debugging
|
package/src/tests/mocks/index.ts
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/tests/api/groups.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/tests/api</a> groups.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">100% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>7/7</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/0</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">100% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>3/3</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">100% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>7/7</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line high'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
-
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
-
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
-
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
-
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
-
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
-
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
-
<a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
93
|
-
<span class="cline-any cline-neutral"> </span>
|
|
94
|
-
<span class="cline-any cline-yes">18x</span>
|
|
95
|
-
<span class="cline-any cline-neutral"> </span>
|
|
96
|
-
<span class="cline-any cline-yes">18x</span>
|
|
97
|
-
<span class="cline-any cline-neutral"> </span>
|
|
98
|
-
<span class="cline-any cline-yes">18x</span>
|
|
99
|
-
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-neutral"> </span>
|
|
101
|
-
<span class="cline-any cline-yes">18x</span>
|
|
102
|
-
<span class="cline-any cline-yes">4x</span>
|
|
103
|
-
<span class="cline-any cline-neutral"> </span>
|
|
104
|
-
<span class="cline-any cline-neutral"> </span>
|
|
105
|
-
<span class="cline-any cline-neutral"> </span>
|
|
106
|
-
<span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
110
|
-
<span class="cline-any cline-yes">18x</span>
|
|
111
|
-
<span class="cline-any cline-yes">1x</span>
|
|
112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
115
|
-
<span class="cline-any cline-neutral"> </span>
|
|
116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
117
|
-
<span class="cline-any cline-neutral"> </span>
|
|
118
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { UserGroup } from "@budibase/types"
|
|
119
|
-
import TestConfiguration from "../TestConfiguration"
|
|
120
|
-
import { TestAPI } from "./base"
|
|
121
|
-
|
|
122
|
-
export class GroupsAPI extends TestAPI {
|
|
123
|
-
constructor(config: TestConfiguration) {
|
|
124
|
-
super(config)
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
saveGroup = (group: UserGroup) => {
|
|
128
|
-
return this.request
|
|
129
|
-
.post(`/api/global/groups`)
|
|
130
|
-
.send(group)
|
|
131
|
-
.set(this.config.defaultHeaders())
|
|
132
|
-
.expect("Content-Type", /json/)
|
|
133
|
-
.expect(200)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
deleteGroup = (id: string, rev: string) => {
|
|
137
|
-
return this.request
|
|
138
|
-
.delete(`/api/global/groups/${id}/${rev}`)
|
|
139
|
-
.set(this.config.defaultHeaders())
|
|
140
|
-
.expect("Content-Type", /json/)
|
|
141
|
-
.expect(200)
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
</pre></td></tr></table></pre>
|
|
145
|
-
|
|
146
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
147
|
-
</div><!-- /wrapper -->
|
|
148
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
149
|
-
Code coverage generated by
|
|
150
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
151
|
-
at Mon Jan 09 2023 12:34:35 GMT+0000 (Coordinated Universal Time)
|
|
152
|
-
</div>
|
|
153
|
-
<script src="../../../prettify.js"></script>
|
|
154
|
-
<script>
|
|
155
|
-
window.onload = function () {
|
|
156
|
-
prettyPrint();
|
|
157
|
-
};
|
|
158
|
-
</script>
|
|
159
|
-
<script src="../../../sorter.js"></script>
|
|
160
|
-
<script src="../../../block-navigation.js"></script>
|
|
161
|
-
</body>
|
|
162
|
-
</html>
|
|
163
|
-
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for src/tests/api/license.ts</title>
|
|
7
|
-
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<style type='text/css'>
|
|
13
|
-
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
-
}
|
|
16
|
-
</style>
|
|
17
|
-
</head>
|
|
18
|
-
|
|
19
|
-
<body>
|
|
20
|
-
<div class='wrapper'>
|
|
21
|
-
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../../index.html">All files</a> / <a href="index.html">src/tests/api</a> license.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">66.66% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>4/6</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">100% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/0</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">33.33% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>1/3</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">80% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>4/5</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</div>
|
|
54
|
-
<p class="quiet">
|
|
55
|
-
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
-
</p>
|
|
57
|
-
<template id="filterTemplate">
|
|
58
|
-
<div class="quiet">
|
|
59
|
-
Filter:
|
|
60
|
-
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
-
</div>
|
|
62
|
-
</template>
|
|
63
|
-
</div>
|
|
64
|
-
<div class='status-line medium'></div>
|
|
65
|
-
<pre><table class="coverage">
|
|
66
|
-
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
-
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
-
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
-
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
-
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
-
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
-
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
-
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
-
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
-
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
-
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
-
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
-
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
-
<a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
84
|
-
<span class="cline-any cline-yes">18x</span>
|
|
85
|
-
<span class="cline-any cline-neutral"> </span>
|
|
86
|
-
<span class="cline-any cline-yes">18x</span>
|
|
87
|
-
<span class="cline-any cline-neutral"> </span>
|
|
88
|
-
<span class="cline-any cline-yes">18x</span>
|
|
89
|
-
<span class="cline-any cline-neutral"> </span>
|
|
90
|
-
<span class="cline-any cline-neutral"> </span>
|
|
91
|
-
<span class="cline-any cline-yes">18x</span>
|
|
92
|
-
<span class="cline-any cline-no"> </span>
|
|
93
|
-
<span class="cline-any cline-neutral"> </span>
|
|
94
|
-
<span class="cline-any cline-neutral"> </span>
|
|
95
|
-
<span class="cline-any cline-neutral"> </span>
|
|
96
|
-
<span class="cline-any cline-neutral"> </span>
|
|
97
|
-
<span class="cline-any cline-neutral"> </span>
|
|
98
|
-
<span class="cline-any cline-neutral"> </span>
|
|
99
|
-
<span class="cline-any cline-neutral"> </span>
|
|
100
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
|
|
101
|
-
import { TestAPI } from "./base"
|
|
102
|
-
|
|
103
|
-
export class LicenseAPI extends TestAPI {
|
|
104
|
-
constructor(config: TestConfiguration) {
|
|
105
|
-
super(config)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
activate = <span class="fstat-no" title="function not covered" >async (l</span>icenseKey: string) =><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
|
|
109
|
-
<span class="cstat-no" title="statement not covered" > return this.request</span>
|
|
110
|
-
.post("/api/global/license/activate")
|
|
111
|
-
.send({ licenseKey: licenseKey })
|
|
112
|
-
.set(this.config.defaultHeaders())
|
|
113
|
-
.expect("Content-Type", /json/)
|
|
114
|
-
.expect(200)
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
</pre></td></tr></table></pre>
|
|
118
|
-
|
|
119
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
120
|
-
</div><!-- /wrapper -->
|
|
121
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
|
-
Code coverage generated by
|
|
123
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
124
|
-
at Mon Jan 09 2023 12:34:35 GMT+0000 (Coordinated Universal Time)
|
|
125
|
-
</div>
|
|
126
|
-
<script src="../../../prettify.js"></script>
|
|
127
|
-
<script>
|
|
128
|
-
window.onload = function () {
|
|
129
|
-
prettyPrint();
|
|
130
|
-
};
|
|
131
|
-
</script>
|
|
132
|
-
<script src="../../../sorter.js"></script>
|
|
133
|
-
<script src="../../../block-navigation.js"></script>
|
|
134
|
-
</body>
|
|
135
|
-
</html>
|
|
136
|
-
|