@budibase/server 1.2.44-alpha.0 → 1.2.44-alpha.11

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 (168) hide show
  1. package/builder/assets/{index.7e1eb5c8.js → index.d0bdd49a.js} +174 -276
  2. package/builder/assets/{index.6b1c808b.css → index.fdb1647e.css} +1 -1
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +75 -75
  5. package/coverage/coverage-final.json +8 -8
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +1 -1
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +5 -5
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +1 -1
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +2 -2
  117. package/coverage/lcov-report/db/utils.js.html +9 -9
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +1 -1
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +11 -11
  127. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  134. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  135. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  136. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  137. package/coverage/lcov-report/utilities/global.js.html +16 -16
  138. package/coverage/lcov-report/utilities/index.html +1 -1
  139. package/coverage/lcov-report/utilities/index.js.html +1 -1
  140. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  141. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  142. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  143. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  144. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  145. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  147. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  148. package/coverage/lcov-report/utilities/security.js.html +1 -1
  149. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  150. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  152. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  153. package/coverage/lcov-report/utilities/users.js.html +1 -1
  154. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  155. package/coverage/lcov.info +141 -141
  156. package/dist/api/controllers/static/index.js +19 -1
  157. package/dist/api/controllers/static/templates/preview.hbs +103 -0
  158. package/dist/api/routes/static.js +1 -0
  159. package/dist/integrations/mongodb.js +2 -2
  160. package/dist/package.json +6 -6
  161. package/dist/tsconfig.build.tsbuildinfo +1 -1
  162. package/package.json +7 -7
  163. package/src/api/controllers/static/index.ts +16 -0
  164. package/src/api/controllers/static/templates/preview.hbs +103 -0
  165. package/src/api/routes/static.ts +1 -0
  166. package/src/api/routes/tests/static.spec.js +19 -7
  167. package/src/integrations/mongodb.ts +2 -2
  168. package/src/integrations/tests/mongo.spec.js +5 -5
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.2.44-alpha.0",
4
+ "version": "1.2.44-alpha.11",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "1.2.44-alpha.0",
81
- "@budibase/client": "1.2.44-alpha.0",
82
- "@budibase/pro": "1.2.43",
83
- "@budibase/string-templates": "1.2.44-alpha.0",
84
- "@budibase/types": "1.2.44-alpha.0",
80
+ "@budibase/backend-core": "1.2.44-alpha.11",
81
+ "@budibase/client": "1.2.44-alpha.11",
82
+ "@budibase/pro": "1.2.44-alpha.10",
83
+ "@budibase/string-templates": "1.2.44-alpha.11",
84
+ "@budibase/types": "1.2.44-alpha.11",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",
@@ -195,5 +195,5 @@
195
195
  "optionalDependencies": {
196
196
  "oracledb": "5.3.0"
197
197
  },
198
- "gitHead": "a9aebf552f8f7e69aa0afa1d88c6f090a609f470"
198
+ "gitHead": "ab4d45fd3bf088b8cfbc9848aa6b89994857e83e"
199
199
  }
@@ -128,6 +128,22 @@ export const serveApp = async function (ctx: any) {
128
128
  }
129
129
  }
130
130
 
131
+ export const serveBuilderPreview = async function (ctx: any) {
132
+ const db = getAppDB({ skip_setup: true })
133
+ const appInfo = await db.get(DocumentType.APP_METADATA)
134
+
135
+ if (!env.isJest()) {
136
+ let appId = getAppId()
137
+ const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`)
138
+ ctx.body = await processString(previewHbs, {
139
+ clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
140
+ })
141
+ } else {
142
+ // just return the app info for jest to assert on
143
+ ctx.body = { ...appInfo, builderPreview: true }
144
+ }
145
+ }
146
+
131
147
  export const serveClientLibrary = async function (ctx: any) {
132
148
  return send(ctx, "budibase-client.js", {
133
149
  root: join(NODE_MODULES_PATH, "@budibase", "client", "dist"),
@@ -0,0 +1,103 @@
1
+ <html lang="en">
2
+ <head>
3
+ <title>Budibase Builder Preview</title>
4
+ <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
5
+ <link rel="preconnect" href="https://fonts.gstatic.com" />
6
+ <link
7
+ href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
8
+ rel="stylesheet"
9
+ />
10
+ <link
11
+ href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css"
12
+ rel="stylesheet"
13
+ />
14
+ <style>
15
+ html, body {
16
+ padding: 0;
17
+ margin: 0;
18
+ }
19
+ html {
20
+ height: 100%;
21
+ width: 100%;
22
+ overflow: hidden;
23
+ display: flex;
24
+ flex-direction: column;
25
+ justify-content: flex-start;
26
+ align-items: stretch;
27
+ }
28
+ body {
29
+ flex: 1 1 auto;
30
+ overflow: hidden;
31
+ }
32
+
33
+ *,
34
+ *:before,
35
+ *:after {
36
+ box-sizing: border-box;
37
+ }
38
+ </style>
39
+ <script src='{{ clientLibPath }}'></script>
40
+ <script>
41
+ function receiveMessage(event) {
42
+ if (!event.data) {
43
+ return
44
+ }
45
+
46
+ // Parse received message
47
+ // If parsing fails, just ignore and wait for the next message
48
+ let parsed
49
+ try {
50
+ parsed = JSON.parse(event.data)
51
+ } catch (error) {
52
+ console.error("Client received invalid JSON")
53
+ // Ignore
54
+ }
55
+ if (!parsed || !parsed.isBudibaseEvent) {
56
+ return
57
+ }
58
+
59
+ // Extract data from message
60
+ const {
61
+ selectedComponentId,
62
+ layout,
63
+ screen,
64
+ appId,
65
+ theme,
66
+ customTheme,
67
+ previewDevice,
68
+ navigation,
69
+ hiddenComponentIds
70
+ } = parsed
71
+
72
+ // Set some flags so the app knows we're in the builder
73
+ window["##BUDIBASE_IN_BUILDER##"] = true
74
+ window["##BUDIBASE_APP_ID##"] = appId
75
+ window["##BUDIBASE_PREVIEW_LAYOUT##"] = layout
76
+ window["##BUDIBASE_PREVIEW_SCREEN##"] = screen
77
+ window["##BUDIBASE_SELECTED_COMPONENT_ID##"] = selectedComponentId
78
+ window["##BUDIBASE_PREVIEW_ID##"] = Math.random()
79
+ window["##BUDIBASE_PREVIEW_THEME##"] = theme
80
+ window["##BUDIBASE_PREVIEW_CUSTOM_THEME##"] = customTheme
81
+ window["##BUDIBASE_PREVIEW_DEVICE##"] = previewDevice
82
+ window["##BUDIBASE_PREVIEW_NAVIGATION##"] = navigation
83
+ window["##BUDIBASE_HIDDEN_COMPONENT_IDS##"] = hiddenComponentIds
84
+
85
+ // Initialise app
86
+ try {
87
+ if (window.loadBudibase) {
88
+ window.loadBudibase()
89
+ document.documentElement.classList.add("loaded")
90
+ } else {
91
+ throw "The client library couldn't be loaded"
92
+ }
93
+ } catch (error) {
94
+ window.parent.postMessage({ type: "error", error })
95
+ }
96
+ }
97
+
98
+ window.addEventListener("message", receiveMessage)
99
+ window.parent.postMessage({ type: "ready" })
100
+ </script>
101
+ </head>
102
+ <body></body>
103
+ </html>
@@ -56,6 +56,7 @@ router
56
56
  authorized(PermissionTypes.TABLE, PermissionLevels.WRITE),
57
57
  controller.deleteObjects
58
58
  )
59
+ .get("/preview", authorized(BUILDER), controller.serveBuilderPreview)
59
60
  .get("/:appId/:path*", controller.serveApp)
60
61
  .get("/app/:appUrl/:path*", controller.serveApp)
61
62
  .post(
@@ -40,7 +40,6 @@ describe("/static", () => {
40
40
  })
41
41
 
42
42
  describe("/app", () => {
43
-
44
43
  beforeEach(() => {
45
44
  jest.clearAllMocks()
46
45
  })
@@ -60,7 +59,7 @@ describe("/static", () => {
60
59
  it("should serve the app by url", async () => {
61
60
  const headers = config.defaultHeaders()
62
61
  delete headers[constants.Headers.APP_ID]
63
-
62
+
64
63
  const res = await request
65
64
  .get(`/app${config.prodApp.url}`)
66
65
  .set(headers)
@@ -82,7 +81,7 @@ describe("/static", () => {
82
81
  describe("/attachments", () => {
83
82
  describe("generateSignedUrls", () => {
84
83
  let datasource
85
-
84
+
86
85
  beforeEach(async () => {
87
86
  datasource = await config.createDatasource({
88
87
  datasource: {
@@ -93,7 +92,7 @@ describe("/static", () => {
93
92
  },
94
93
  })
95
94
  })
96
-
95
+
97
96
  it("should be able to generate a signed upload URL", async () => {
98
97
  const bucket = "foo"
99
98
  const key = "bar"
@@ -108,7 +107,7 @@ describe("/static", () => {
108
107
  `https://${bucket}.s3.eu-west-1.amazonaws.com/${key}`
109
108
  )
110
109
  })
111
-
110
+
112
111
  it("should handle an invalid datasource ID", async () => {
113
112
  const res = await request
114
113
  .post(`/api/attachments/foo/url`)
@@ -123,7 +122,7 @@ describe("/static", () => {
123
122
  "The specified datasource could not be found"
124
123
  )
125
124
  })
126
-
125
+
127
126
  it("should require a bucket parameter", async () => {
128
127
  const res = await request
129
128
  .post(`/api/attachments/${datasource._id}/url`)
@@ -136,7 +135,7 @@ describe("/static", () => {
136
135
  .expect(400)
137
136
  expect(res.body.message).toEqual("bucket and key values are required")
138
137
  })
139
-
138
+
140
139
  it("should require a key parameter", async () => {
141
140
  const res = await request
142
141
  .post(`/api/attachments/${datasource._id}/url`)
@@ -151,4 +150,17 @@ describe("/static", () => {
151
150
  })
152
151
  })
153
152
 
153
+ describe("/preview", () => {
154
+ beforeEach(() => {
155
+ jest.clearAllMocks()
156
+ })
157
+
158
+ it("should serve the builder preview", async () => {
159
+ const headers = config.defaultHeaders()
160
+ const res = await request.get(`/preview`).set(headers).expect(200)
161
+
162
+ expect(res.body.appId).toBe(config.appId)
163
+ expect(res.body.builderPreview).toBe(true)
164
+ })
165
+ })
154
166
  })
@@ -93,8 +93,8 @@ module MongoDBModule {
93
93
  json[field] = self.createObjectIds(json[field])
94
94
  }
95
95
  if (
96
- (field === "_id" || field?.startsWith("$")) &&
97
- typeof json[field] === "string"
96
+ typeof json[field] === "string" &&
97
+ json[field].toLowerCase().startsWith("objectid")
98
98
  ) {
99
99
  const id = json[field].match(
100
100
  /(?<=objectid\(['"]).*(?=['"]\))/gi
@@ -103,16 +103,16 @@ describe("MongoDB Integration", () => {
103
103
  restore()
104
104
  })
105
105
 
106
- it("creates ObjectIds if the _id fields contains a match on ObjectId", async () => {
106
+ it("creates ObjectIds if the field contains a match on ObjectId", async () => {
107
107
  const query = {
108
108
  json: {
109
109
  filter: {
110
110
  _id: "ObjectId('ACBD12345678ABCD12345678')",
111
- name: "ObjectId('name')"
111
+ name: "ObjectId('BBBB12345678ABCD12345678')"
112
112
  },
113
113
  update: {
114
114
  _id: "ObjectId('FFFF12345678ABCD12345678')",
115
- name: "ObjectId('updatedName')",
115
+ name: "ObjectId('CCCC12345678ABCD12345678')",
116
116
  },
117
117
  options: {
118
118
  upsert: false,
@@ -126,11 +126,11 @@ describe("MongoDB Integration", () => {
126
126
  const args = config.integration.client.updateOne.mock.calls[0]
127
127
  expect(args[0]).toEqual({
128
128
  _id: mongo.ObjectID.createFromHexString("ACBD12345678ABCD12345678"),
129
- name: "ObjectId('name')",
129
+ name: mongo.ObjectID.createFromHexString("BBBB12345678ABCD12345678"),
130
130
  })
131
131
  expect(args[1]).toEqual({
132
132
  _id: mongo.ObjectID.createFromHexString("FFFF12345678ABCD12345678"),
133
- name: "ObjectId('updatedName')",
133
+ name: mongo.ObjectID.createFromHexString("CCCC12345678ABCD12345678"),
134
134
  })
135
135
  expect(args[2]).toEqual({
136
136
  upsert: false