@budibase/worker 2.2.12-alpha.1 → 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.
Files changed (134) hide show
  1. package/coverage/clover.xml +1238 -1291
  2. package/coverage/coverage-final.json +77 -81
  3. package/coverage/lcov-report/index.html +73 -73
  4. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +26 -26
  5. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +212 -155
  6. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
  7. package/coverage/lcov-report/src/api/controllers/global/index.html +39 -39
  8. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +7 -7
  9. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +76 -76
  10. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +14 -14
  11. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +53 -53
  12. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +27 -27
  13. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +4 -4
  15. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +3 -3
  16. package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +4 -4
  18. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
  19. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +4 -4
  20. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +5 -5
  21. package/coverage/lcov-report/src/api/index.html +1 -1
  22. package/coverage/lcov-report/src/api/index.ts.html +23 -23
  23. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +11 -11
  24. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +16 -16
  25. package/coverage/lcov-report/src/api/routes/global/email.ts.html +10 -10
  26. package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
  27. package/coverage/lcov-report/src/api/routes/global/license.ts.html +7 -7
  28. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +7 -7
  29. package/coverage/lcov-report/src/api/routes/global/self.ts.html +8 -8
  30. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +11 -11
  31. package/coverage/lcov-report/src/api/routes/global/users.ts.html +16 -16
  32. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +9 -9
  33. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  34. package/coverage/lcov-report/src/api/routes/index.ts.html +19 -19
  35. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +7 -7
  36. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +6 -6
  37. package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
  38. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +7 -7
  39. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +6 -6
  40. package/coverage/lcov-report/src/api/routes/system/status.ts.html +6 -6
  41. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +7 -7
  42. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +13 -13
  45. package/coverage/lcov-report/src/constants/index.html +9 -9
  46. package/coverage/lcov-report/src/constants/index.ts.html +49 -73
  47. package/coverage/lcov-report/src/constants/templates/index.html +19 -19
  48. package/coverage/lcov-report/src/constants/templates/index.ts.html +39 -39
  49. package/coverage/lcov-report/src/db/index.html +1 -1
  50. package/coverage/lcov-report/src/db/index.ts.html +8 -8
  51. package/coverage/lcov-report/src/environment.ts.html +22 -37
  52. package/coverage/lcov-report/src/index.html +15 -15
  53. package/coverage/lcov-report/src/index.ts.html +43 -40
  54. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +4 -4
  55. package/coverage/lcov-report/src/middleware/index.html +1 -1
  56. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +3 -3
  57. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  58. package/coverage/lcov-report/src/migrations/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/index.ts.html +17 -17
  60. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +6 -6
  61. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  62. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  63. package/coverage/lcov-report/src/sdk/index.html +1 -1
  64. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  65. package/coverage/lcov-report/src/sdk/users/events.ts.html +46 -46
  66. package/coverage/lcov-report/src/sdk/users/index.html +15 -15
  67. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  68. package/coverage/lcov-report/src/sdk/users/users.ts.html +97 -148
  69. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +80 -104
  70. package/coverage/lcov-report/src/tests/api/accounts.ts.html +6 -6
  71. package/coverage/lcov-report/src/tests/api/auth.ts.html +7 -7
  72. package/coverage/lcov-report/src/tests/api/base.ts.html +4 -4
  73. package/coverage/lcov-report/src/tests/api/configs.ts.html +8 -8
  74. package/coverage/lcov-report/src/tests/api/email.ts.html +5 -5
  75. package/coverage/lcov-report/src/tests/api/environment.ts.html +5 -5
  76. package/coverage/lcov-report/src/tests/api/index.html +11 -71
  77. package/coverage/lcov-report/src/tests/api/index.ts.html +28 -61
  78. package/coverage/lcov-report/src/tests/api/migrations.ts.html +6 -6
  79. package/coverage/lcov-report/src/tests/api/restore.ts.html +5 -5
  80. package/coverage/lcov-report/src/tests/api/self.ts.html +6 -6
  81. package/coverage/lcov-report/src/tests/api/status.ts.html +5 -5
  82. package/coverage/lcov-report/src/tests/api/tenants.ts.html +5 -5
  83. package/coverage/lcov-report/src/tests/api/users.ts.html +16 -16
  84. package/coverage/lcov-report/src/tests/controllers.ts.html +6 -6
  85. package/coverage/lcov-report/src/tests/index.html +10 -10
  86. package/coverage/lcov-report/src/tests/index.ts.html +9 -9
  87. package/coverage/lcov-report/src/tests/mocks/{email.ts.html → email.js.html} +5 -5
  88. package/coverage/lcov-report/src/tests/mocks/index.html +2 -2
  89. package/coverage/lcov-report/src/tests/mocks/index.ts.html +7 -7
  90. package/coverage/lcov-report/src/tests/structures/configs.ts.html +10 -10
  91. package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
  92. package/coverage/lcov-report/src/tests/structures/index.html +16 -16
  93. package/coverage/lcov-report/src/tests/structures/index.ts.html +11 -11
  94. package/coverage/lcov-report/src/tests/structures/users.ts.html +11 -11
  95. package/coverage/lcov-report/src/utilities/appService.ts.html +10 -10
  96. package/coverage/lcov-report/src/utilities/email.ts.html +15 -15
  97. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
  98. package/coverage/lcov-report/src/utilities/index.html +1 -1
  99. package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
  100. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  101. package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
  102. package/coverage/lcov-report/src/utilities/users.ts.html +3 -3
  103. package/coverage/lcov.info +1779 -1949
  104. package/jest.config.ts +0 -2
  105. package/package.json +6 -7
  106. package/src/api/controllers/global/configs.ts +131 -112
  107. package/src/api/controllers/global/users.ts +1 -1
  108. package/src/api/routes/global/license.ts +1 -1
  109. package/src/api/routes/global/tests/license.spec.ts +2 -0
  110. package/src/api/routes/global/tests/roles.spec.ts +5 -66
  111. package/src/api/routes/global/tests/templates.spec.ts +9 -89
  112. package/src/api/routes/global/tests/users.spec.ts +2 -2
  113. package/src/constants/index.ts +5 -13
  114. package/src/environment.ts +0 -5
  115. package/src/index.ts +2 -1
  116. package/src/sdk/users/users.ts +1 -18
  117. package/src/tests/TestConfiguration.ts +1 -9
  118. package/src/tests/api/index.ts +1 -12
  119. package/src/tests/jestSetup.ts +1 -3
  120. package/src/tests/mocks/{email.ts → email.js} +1 -1
  121. package/src/tests/mocks/index.ts +3 -3
  122. package/src/tests/structures/configs.ts +2 -2
  123. package/src/tests/structures/groups.ts +1 -1
  124. package/src/tests/structures/users.ts +1 -1
  125. package/tsconfig.json +1 -0
  126. package/coverage/lcov-report/src/tests/api/groups.ts.html +0 -163
  127. package/coverage/lcov-report/src/tests/api/license.ts.html +0 -136
  128. package/coverage/lcov-report/src/tests/api/roles.ts.html +0 -181
  129. package/coverage/lcov-report/src/tests/api/templates.ts.html +0 -175
  130. package/src/api/routes/global/tests/groups.spec.ts +0 -58
  131. package/src/tests/api/groups.ts +0 -26
  132. package/src/tests/api/license.ts +0 -17
  133. package/src/tests/api/roles.ts +0 -32
  134. package/src/tests/api/templates.ts +0 -30
@@ -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: TemplateMetadataNames.BASE,
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: TemplateMetadataNames.PASSWORD_RECOVERY,
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: TemplateMetadataNames.WELCOME,
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: TemplateMetadataNames.INVITATION,
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: TemplateMetadataNames.CUSTOM,
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",
@@ -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
- import destroyable from "server-destroy"
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
 
@@ -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 getPlatformUser(email)
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 mocks from "./mocks"
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"
@@ -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
- import { GroupsAPI } from "./groups"
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
  }
@@ -22,9 +22,7 @@ mocks.fetch.enable()
22
22
  const tk = require("timekeeper")
23
23
  tk.freeze(mocks.date.MOCK_DATE)
24
24
 
25
- if (!process.env.DEBUG) {
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
@@ -1,4 +1,4 @@
1
- export function mock() {
1
+ exports.mock = () => {
2
2
  // mock the email system
3
3
  const sendMailMock = jest.fn()
4
4
  const nodemailer = require("nodemailer")
@@ -1,7 +1,7 @@
1
- import * as email from "./email"
2
- import { mocks } from "@budibase/backend-core/tests"
1
+ const email = require("./email")
2
+ import { mocks as coreMocks } from "@budibase/backend-core/tests"
3
3
 
4
4
  export = {
5
5
  email,
6
- ...mocks,
6
+ ...coreMocks,
7
7
  }
@@ -1,5 +1,5 @@
1
- import { Config } from "../../constants"
2
- import { utils } from "@budibase/backend-core"
1
+ const { Config } = require("../../constants")
2
+ const { utils } = require("@budibase/backend-core")
3
3
 
4
4
  export function oidc(conf?: any) {
5
5
  return {
@@ -4,7 +4,7 @@ export const UserGroup = () => {
4
4
  color: "var(--spectrum-global-color-blue-600)",
5
5
  icon: "UserGroup",
6
6
  name: "New group",
7
- roles: { app_uuid1: "ADMIN", app_uuid2: "POWER" },
7
+ roles: {},
8
8
  users: [],
9
9
  }
10
10
  return group
@@ -10,7 +10,7 @@ export const user = (userProps?: any): User => {
10
10
  return {
11
11
  email: newEmail(),
12
12
  password: "test",
13
- roles: { app_test: "admin" },
13
+ roles: {},
14
14
  ...userProps,
15
15
  }
16
16
  }
package/tsconfig.json CHANGED
@@ -25,6 +25,7 @@
25
25
  "package.json"
26
26
  ],
27
27
  "exclude": [
28
+ "node_modules",
28
29
  "dist"
29
30
  ]
30
31
  }
@@ -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">&nbsp;</span>
93
- <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-yes">18x</span>
95
- <span class="cline-any cline-neutral">&nbsp;</span>
96
- <span class="cline-any cline-yes">18x</span>
97
- <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-yes">18x</span>
99
- <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
104
- <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-neutral">&nbsp;</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-neutral">&nbsp;</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-neutral">&nbsp;</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
- &nbsp;
122
- export class GroupsAPI extends TestAPI {
123
- constructor(config: TestConfiguration) {
124
- super(config)
125
- }
126
- &nbsp;
127
- saveGroup = (group: UserGroup) =&gt; {
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
- &nbsp;
136
- deleteGroup = (id: string, rev: string) =&gt; {
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
- &nbsp;</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 08:30:59 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">&nbsp;</span>
84
- <span class="cline-any cline-yes">18x</span>
85
- <span class="cline-any cline-neutral">&nbsp;</span>
86
- <span class="cline-any cline-yes">18x</span>
87
- <span class="cline-any cline-neutral">&nbsp;</span>
88
- <span class="cline-any cline-yes">18x</span>
89
- <span class="cline-any cline-neutral">&nbsp;</span>
90
- <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-yes">18x</span>
92
- <span class="cline-any cline-no">&nbsp;</span>
93
- <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-neutral">&nbsp;</span>
95
- <span class="cline-any cline-neutral">&nbsp;</span>
96
- <span class="cline-any cline-neutral">&nbsp;</span>
97
- <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-neutral">&nbsp;</span>
99
- <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import TestConfiguration from "../TestConfiguration"
101
- import { TestAPI } from "./base"
102
- &nbsp;
103
- export class LicenseAPI extends TestAPI {
104
- constructor(config: TestConfiguration) {
105
- super(config)
106
- }
107
- &nbsp;
108
- activate = <span class="fstat-no" title="function not covered" >async (l</span>icenseKey: string) =&gt;<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
- &nbsp;</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 08:30:59 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
-