@webex/internal-plugin-support 2.59.8-next.1 → 2.60.0-next.1

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/dist/config.js CHANGED
@@ -8,7 +8,7 @@ exports.default = void 0;
8
8
  /*!
9
9
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
10
10
  */
11
- var _default = {
11
+ var _default = exports.default = {
12
12
  device: {
13
13
  preDiscoveryServices: {
14
14
  atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',
@@ -23,5 +23,4 @@ var _default = {
23
23
  languageCode: ''
24
24
  }
25
25
  };
26
- exports.default = _default;
27
26
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_default","device","preDiscoveryServices","atlasServiceUrl","process","env","ATLAS_SERVICE_URL","atlas","clientLogs","CLIENT_LOGS_SERVICE_URL","clientLogsServiceUrl","support","appType","appVersion","languageCode","exports","default"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n device: {\n preDiscoveryServices: {\n atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n clientLogs: process.env.CLIENT_LOGS_SERVICE_URL || 'https://client-logs-a.wbx2.com/api/v1',\n clientLogsServiceUrl:\n process.env.CLIENT_LOGS_SERVICE_URL || 'https://client-logs-a.wbx2.com/api/v1',\n },\n },\n\n support: {\n appType: '',\n appVersion: '',\n languageCode: '',\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAIe;EACbC,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,eAAe,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI,uCAAuC;MACzFC,KAAK,EAAEH,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI,uCAAuC;MAC/EE,UAAU,EAAEJ,OAAO,CAACC,GAAG,CAACI,uBAAuB,IAAI,uCAAuC;MAC1FC,oBAAoB,EAClBN,OAAO,CAACC,GAAG,CAACI,uBAAuB,IAAI;IAC3C;EACF,CAAC;EAEDE,OAAO,EAAE;IACPC,OAAO,EAAE,EAAE;IACXC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAChB;AACF,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAhB,QAAA"}
1
+ {"version":3,"names":["_default","exports","default","device","preDiscoveryServices","atlasServiceUrl","process","env","ATLAS_SERVICE_URL","atlas","clientLogs","CLIENT_LOGS_SERVICE_URL","clientLogsServiceUrl","support","appType","appVersion","languageCode"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n device: {\n preDiscoveryServices: {\n atlasServiceUrl: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n atlas: process.env.ATLAS_SERVICE_URL || 'https://atlas-a.wbx2.com/admin/api/v1',\n clientLogs: process.env.CLIENT_LOGS_SERVICE_URL || 'https://client-logs-a.wbx2.com/api/v1',\n clientLogsServiceUrl:\n process.env.CLIENT_LOGS_SERVICE_URL || 'https://client-logs-a.wbx2.com/api/v1',\n },\n },\n\n support: {\n appType: '',\n appVersion: '',\n languageCode: '',\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,eAAe,EAAEC,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI,uCAAuC;MACzFC,KAAK,EAAEH,OAAO,CAACC,GAAG,CAACC,iBAAiB,IAAI,uCAAuC;MAC/EE,UAAU,EAAEJ,OAAO,CAACC,GAAG,CAACI,uBAAuB,IAAI,uCAAuC;MAC1FC,oBAAoB,EAClBN,OAAO,CAACC,GAAG,CAACI,uBAAuB,IAAI;IAC3C;EACF,CAAC;EAEDE,OAAO,EAAE;IACPC,OAAO,EAAE,EAAE;IACXC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAChB;AACF,CAAC"}
package/dist/support.js CHANGED
@@ -129,7 +129,7 @@ var Support = _webexCore.WebexPlugin.extend({
129
129
  * @returns {array}
130
130
  */
131
131
  _constructFileMetadata: function _constructFileMetadata(metadata) {
132
- var metadataArray = ['locusId', 'callStart', 'feedbackId', 'correlationId', 'meetingId', 'surveySessionId'].map(function (key) {
132
+ var metadataArray = ['locusId', 'appVersion', 'callStart', 'feedbackId', 'correlationId', 'meetingId', 'surveySessionId', 'productAreaTag', 'issueTypeTag', 'locussessionid', 'autoupload'].map(function (key) {
133
133
  if (metadata[key]) {
134
134
  return {
135
135
  key: key,
@@ -146,6 +146,12 @@ var Support = _webexCore.WebexPlugin.extend({
146
146
  value: this.webex.sessionId
147
147
  });
148
148
  }
149
+ if (this.webex.internal.support.config.appVersion) {
150
+ metadataArray.push({
151
+ key: 'appVersion',
152
+ value: this.webex.internal.support.config.appVersion
153
+ });
154
+ }
149
155
  if (this.webex.internal.device.userId) {
150
156
  metadataArray.push({
151
157
  key: 'userId',
@@ -160,8 +166,7 @@ var Support = _webexCore.WebexPlugin.extend({
160
166
  }
161
167
  return metadataArray;
162
168
  },
163
- version: "2.59.8-next.1"
169
+ version: "2.60.0-next.1"
164
170
  });
165
- var _default = Support;
166
- exports.default = _default;
171
+ var _default = exports.default = Support;
167
172
  //# sourceMappingURL=support.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_lodash","_uuid","_interopRequireDefault","Support","WebexPlugin","extend","namespace","getFeedbackUrl","options","request","method","api","resource","body","defaults","appVersion","config","appType","feedbackId","uuid","v4","languageCode","then","res","url","getSupportUrl","webex","qs","submitLogs","metadata","logs","_this","metadataArray","_constructFileMetadata","logger","sdkBuffer","clientBuffer","buffer","formatLogs","filename","locusId","callStart","concat","sessionId","userId","credentials","getUserToken","catch","getClientToken","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","token","headers","initalOpts","finalOpts","wrap","_callee$","_context","prev","next","authorization","toString","service","file","shouldAttemptReauth","phases","initialize","upload","$uri","session","tempURL","finalize","$body","logFilename","data","internal","device","abrupt","stop","_x","apply","arguments","map","key","value","filter","entry","Boolean","push","orgId","version","_default","exports"],"sources":["support.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\nimport uuid from 'uuid';\n\nconst Support = WebexPlugin.extend({\n namespace: 'Support',\n\n getFeedbackUrl(options) {\n options = options || {};\n\n return this.request({\n method: 'POST',\n api: 'conversation',\n resource: 'users/deskFeedbackUrl',\n body: defaults(options, {\n appVersion: this.config.appVersion,\n appType: this.config.appType,\n feedbackId: options.feedbackId || uuid.v4(),\n languageCode: this.config.languageCode,\n }),\n }).then((res) => res.body.url);\n },\n\n getSupportUrl() {\n return this.webex\n .request({\n method: 'GET',\n api: 'conversation',\n resource: 'users/deskSupportUrl',\n qs: {\n languageCode: this.config.languageCode,\n },\n })\n .then((res) => res.body.url);\n },\n\n submitLogs(metadata, logs) {\n const metadataArray = this._constructFileMetadata(metadata);\n\n // this is really testing that Ampersand is fully ready. once it's ready, these exist\n if (\n !logs &&\n this.webex.logger.sdkBuffer &&\n this.webex.logger.clientBuffer &&\n this.webex.logger.buffer\n ) {\n logs = this.webex.logger.formatLogs();\n }\n\n let filename;\n\n if (metadata.locusId && metadata.callStart) {\n filename = `${metadata.locusId}_${metadata.callStart}.txt`;\n } else {\n filename = `${this.webex.sessionId}.txt`;\n }\n\n let userId;\n\n return this.webex.credentials\n .getUserToken()\n .catch(() => this.webex.credentials.getClientToken())\n .then(async (token) => {\n const headers = {authorization: token.toString()};\n\n const initalOpts = {\n service: 'clientLogs',\n resource: 'logs/urls',\n };\n\n const finalOpts = {\n service: 'clientLogs',\n resource: 'logs/meta',\n };\n\n const options = defaults(initalOpts, {\n file: logs,\n shouldAttemptReauth: false,\n headers,\n phases: {\n initialize: {\n body: {\n file: filename,\n },\n },\n upload: {\n $uri: (session) => session.tempURL,\n },\n finalize: defaults(finalOpts, {\n $body: (session) => {\n userId = session.userId;\n\n return {\n filename: session.logFilename,\n data: metadataArray,\n userId: this.webex.internal.device.userId || session.userId,\n };\n },\n }),\n },\n });\n\n return this.webex.upload(options);\n })\n .then((body) => {\n if (userId && !body.userId) {\n body.userId = userId;\n }\n\n return body;\n });\n },\n\n /**\n * Constructs an array of key-value pairs for log upload.\n * @param {*} metadata\n * @returns {array}\n */\n _constructFileMetadata(metadata) {\n const metadataArray = [\n 'locusId',\n 'callStart',\n 'feedbackId',\n 'correlationId',\n 'meetingId',\n 'surveySessionId',\n ]\n .map((key) => {\n if (metadata[key]) {\n return {\n key,\n value: metadata[key],\n };\n }\n\n return null;\n })\n .filter((entry) => Boolean(entry));\n\n if (this.webex.sessionId) {\n metadataArray.push({\n key: 'trackingId',\n value: this.webex.sessionId,\n });\n }\n\n if (this.webex.internal.device.userId) {\n metadataArray.push({\n key: 'userId',\n value: this.webex.internal.device.userId,\n });\n }\n\n if (this.webex.internal.device.orgId) {\n metadataArray.push({\n key: 'orgId',\n value: this.webex.internal.device.orgId,\n });\n }\n\n return metadataArray;\n },\n});\n\nexport default Support;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_lodash","_uuid","_interopRequireDefault","Support","WebexPlugin","extend","namespace","getFeedbackUrl","options","request","method","api","resource","body","defaults","appVersion","config","appType","feedbackId","uuid","v4","languageCode","then","res","url","getSupportUrl","webex","qs","submitLogs","metadata","logs","_this","metadataArray","_constructFileMetadata","logger","sdkBuffer","clientBuffer","buffer","formatLogs","filename","locusId","callStart","concat","sessionId","userId","credentials","getUserToken","catch","getClientToken","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","token","headers","initalOpts","finalOpts","wrap","_callee$","_context","prev","next","authorization","toString","service","file","shouldAttemptReauth","phases","initialize","upload","$uri","session","tempURL","finalize","$body","logFilename","data","internal","device","abrupt","stop","_x","apply","arguments","map","key","value","filter","entry","Boolean","push","support","orgId","version","_default","exports"],"sources":["support.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {defaults} from 'lodash';\nimport uuid from 'uuid';\n\nconst Support = WebexPlugin.extend({\n namespace: 'Support',\n\n getFeedbackUrl(options) {\n options = options || {};\n\n return this.request({\n method: 'POST',\n api: 'conversation',\n resource: 'users/deskFeedbackUrl',\n body: defaults(options, {\n appVersion: this.config.appVersion,\n appType: this.config.appType,\n feedbackId: options.feedbackId || uuid.v4(),\n languageCode: this.config.languageCode,\n }),\n }).then((res) => res.body.url);\n },\n\n getSupportUrl() {\n return this.webex\n .request({\n method: 'GET',\n api: 'conversation',\n resource: 'users/deskSupportUrl',\n qs: {\n languageCode: this.config.languageCode,\n },\n })\n .then((res) => res.body.url);\n },\n\n submitLogs(metadata, logs) {\n const metadataArray = this._constructFileMetadata(metadata);\n\n // this is really testing that Ampersand is fully ready. once it's ready, these exist\n if (\n !logs &&\n this.webex.logger.sdkBuffer &&\n this.webex.logger.clientBuffer &&\n this.webex.logger.buffer\n ) {\n logs = this.webex.logger.formatLogs();\n }\n\n let filename;\n\n if (metadata.locusId && metadata.callStart) {\n filename = `${metadata.locusId}_${metadata.callStart}.txt`;\n } else {\n filename = `${this.webex.sessionId}.txt`;\n }\n\n let userId;\n\n return this.webex.credentials\n .getUserToken()\n .catch(() => this.webex.credentials.getClientToken())\n .then(async (token) => {\n const headers = {authorization: token.toString()};\n\n const initalOpts = {\n service: 'clientLogs',\n resource: 'logs/urls',\n };\n\n const finalOpts = {\n service: 'clientLogs',\n resource: 'logs/meta',\n };\n\n const options = defaults(initalOpts, {\n file: logs,\n shouldAttemptReauth: false,\n headers,\n phases: {\n initialize: {\n body: {\n file: filename,\n },\n },\n upload: {\n $uri: (session) => session.tempURL,\n },\n finalize: defaults(finalOpts, {\n $body: (session) => {\n userId = session.userId;\n\n return {\n filename: session.logFilename,\n data: metadataArray,\n userId: this.webex.internal.device.userId || session.userId,\n };\n },\n }),\n },\n });\n\n return this.webex.upload(options);\n })\n .then((body) => {\n if (userId && !body.userId) {\n body.userId = userId;\n }\n\n return body;\n });\n },\n\n /**\n * Constructs an array of key-value pairs for log upload.\n * @param {*} metadata\n * @returns {array}\n */\n _constructFileMetadata(metadata) {\n const metadataArray = [\n 'locusId',\n 'appVersion',\n 'callStart',\n 'feedbackId',\n 'correlationId',\n 'meetingId',\n 'surveySessionId',\n 'productAreaTag',\n 'issueTypeTag',\n 'locussessionid',\n 'autoupload',\n ]\n .map((key) => {\n if (metadata[key]) {\n return {\n key,\n value: metadata[key],\n };\n }\n\n return null;\n })\n .filter((entry) => Boolean(entry));\n\n if (this.webex.sessionId) {\n metadataArray.push({\n key: 'trackingId',\n value: this.webex.sessionId,\n });\n }\n\n if (this.webex.internal.support.config.appVersion) {\n metadataArray.push({\n key: 'appVersion',\n value: this.webex.internal.support.config.appVersion,\n });\n }\n\n if (this.webex.internal.device.userId) {\n metadataArray.push({\n key: 'userId',\n value: this.webex.internal.device.userId,\n });\n }\n\n if (this.webex.internal.device.orgId) {\n metadataArray.push({\n key: 'orgId',\n value: this.webex.internal.device.orgId,\n });\n }\n\n return metadataArray;\n },\n});\n\nexport default Support;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "directory": "packages/@webex/internal-plugin-support"
12
12
  },
13
13
  "engines": {
14
- "node": ">=14"
14
+ "node": ">=16"
15
15
  },
16
16
  "browserify": {
17
17
  "transform": [
@@ -20,13 +20,13 @@
20
20
  ]
21
21
  },
22
22
  "dependencies": {
23
- "@webex/internal-plugin-device": "^2.59.8-next.1",
24
- "@webex/internal-plugin-search": "^2.59.8-next.1",
25
- "@webex/test-helper-chai": "^2.59.8-next.1",
26
- "@webex/test-helper-file": "^2.59.8-next.1",
27
- "@webex/test-helper-mock-webex": "^2.59.8-next.1",
28
- "@webex/test-helper-test-users": "^2.59.8-next.1",
29
- "@webex/webex-core": "^2.59.8-next.1",
23
+ "@webex/internal-plugin-device": "^2.60.0-next.1",
24
+ "@webex/internal-plugin-search": "^2.60.0-next.1",
25
+ "@webex/test-helper-chai": "^2.60.0-next.1",
26
+ "@webex/test-helper-file": "^2.60.0-next.1",
27
+ "@webex/test-helper-mock-webex": "^2.60.0-next.1",
28
+ "@webex/test-helper-test-users": "^2.60.0-next.1",
29
+ "@webex/webex-core": "^2.60.0-next.1",
30
30
  "lodash": "^4.17.21",
31
31
  "uuid": "^3.3.2"
32
32
  },
@@ -46,12 +46,12 @@
46
46
  "@webex/eslint-config-legacy": "^0.0.0",
47
47
  "@webex/jest-config-legacy": "^0.0.0",
48
48
  "@webex/legacy-tools": "^0.0.0",
49
- "@webex/test-helper-chai": "^2.59.8-next.1",
50
- "@webex/test-helper-mocha": "^2.59.8-next.1",
51
- "@webex/test-helper-mock-webex": "^2.59.8-next.1",
52
- "@webex/test-helper-test-users": "^2.59.8-next.1",
49
+ "@webex/test-helper-chai": "^2.60.0-next.1",
50
+ "@webex/test-helper-mocha": "^2.60.0-next.1",
51
+ "@webex/test-helper-mock-webex": "^2.60.0-next.1",
52
+ "@webex/test-helper-test-users": "^2.60.0-next.1",
53
53
  "eslint": "^8.24.0",
54
54
  "prettier": "^2.7.1"
55
55
  },
56
- "version": "2.59.8-next.1"
56
+ "version": "2.60.0-next.1"
57
57
  }
package/src/support.js CHANGED
@@ -123,11 +123,16 @@ const Support = WebexPlugin.extend({
123
123
  _constructFileMetadata(metadata) {
124
124
  const metadataArray = [
125
125
  'locusId',
126
+ 'appVersion',
126
127
  'callStart',
127
128
  'feedbackId',
128
129
  'correlationId',
129
130
  'meetingId',
130
131
  'surveySessionId',
132
+ 'productAreaTag',
133
+ 'issueTypeTag',
134
+ 'locussessionid',
135
+ 'autoupload',
131
136
  ]
132
137
  .map((key) => {
133
138
  if (metadata[key]) {
@@ -148,6 +153,13 @@ const Support = WebexPlugin.extend({
148
153
  });
149
154
  }
150
155
 
156
+ if (this.webex.internal.support.config.appVersion) {
157
+ metadataArray.push({
158
+ key: 'appVersion',
159
+ value: this.webex.internal.support.config.appVersion,
160
+ });
161
+ }
162
+
151
163
  if (this.webex.internal.device.userId) {
152
164
  metadataArray.push({
153
165
  key: 'userId',
@@ -20,18 +20,23 @@ describe('plugin-support', () => {
20
20
 
21
21
  webex.internal.device.userId = 'user-abc-123';
22
22
  webex.internal.device.orgId = 'org-abc-123';
23
+ webex.internal.support.config.appVersion = '0.0.0.0';
23
24
  });
24
25
 
25
26
  describe('#_constructFileMetadata()', () => {
26
27
  it('constructs a sample File Meta Data', () => {
27
28
  const result = webex.internal.support._constructFileMetadata({});
28
29
 
29
- assert.equal(result.length, 3);
30
+ assert.equal(result.length, 4);
30
31
  assert.deepEqual(result, [
31
32
  {
32
33
  key: 'trackingId',
33
34
  value: 'mock-webex_88888888-4444-4444-4444-aaaaaaaaaaaa',
34
35
  },
36
+ {
37
+ key: 'appVersion',
38
+ value: '0.0.0.0',
39
+ },
35
40
  {
36
41
  key: 'userId',
37
42
  value: webex.internal.device.userId,
@@ -74,6 +79,78 @@ describe('plugin-support', () => {
74
79
 
75
80
  assert.equal(found?.value, surveySessionId);
76
81
  });
82
+
83
+ it('sends productAreaTag if specified in metadata', () => {
84
+ const productAreaTag = 'product-area-tag';
85
+ const result = webex.internal.support._constructFileMetadata({productAreaTag});
86
+ const found = result.find((attr) => attr.key === 'productAreaTag');
87
+
88
+ assert.equal(found?.value, productAreaTag);
89
+ });
90
+
91
+ it('sends issueTypeTag if specified in metadata', () => {
92
+ const issueTypeTag = 'issueTypeTag';
93
+ const result = webex.internal.support._constructFileMetadata({issueTypeTag});
94
+ const found = result.find((attr) => attr.key === 'issueTypeTag');
95
+
96
+ assert.equal(found?.value, issueTypeTag);
97
+ });
98
+
99
+ it('sends locussessionid if specified in metadata', () => {
100
+ const locussessionid = 'locussessionid';
101
+ const result = webex.internal.support._constructFileMetadata({locussessionid});
102
+ const found = result.find((attr) => attr.key === 'locussessionid');
103
+
104
+ assert.equal(found?.value, locussessionid);
105
+ });
106
+
107
+ it('sends locusId if specified in metadata', () => {
108
+ const locusId = 'locusId';
109
+ const result = webex.internal.support._constructFileMetadata({locusId});
110
+ const found = result.find((attr) => attr.key === 'locusId');
111
+
112
+ assert.equal(found?.value, locusId);
113
+ });
114
+
115
+ it('sends callStart if specified in metadata', () => {
116
+ const callStart = 'callStart';
117
+ const result = webex.internal.support._constructFileMetadata({callStart});
118
+ const found = result.find((attr) => attr.key === 'callStart');
119
+
120
+ assert.equal(found?.value, callStart);
121
+ });
122
+
123
+ it('sends feedbackId if specified in metadata', () => {
124
+ const feedbackId = 'feedbackId';
125
+ const result = webex.internal.support._constructFileMetadata({feedbackId});
126
+ const found = result.find((attr) => attr.key === 'feedbackId');
127
+
128
+ assert.equal(found?.value, feedbackId);
129
+ });
130
+
131
+ it('sends correlationId if specified in metadata', () => {
132
+ const correlationId = 'correlationId';
133
+ const result = webex.internal.support._constructFileMetadata({correlationId});
134
+ const found = result.find((attr) => attr.key === 'correlationId');
135
+
136
+ assert.equal(found?.value, correlationId);
137
+ });
138
+
139
+ it('sends meetingId if specified in metadata', () => {
140
+ const meetingId = 'meetingId';
141
+ const result = webex.internal.support._constructFileMetadata({meetingId});
142
+ const found = result.find((attr) => attr.key === 'meetingId');
143
+
144
+ assert.equal(found?.value, meetingId);
145
+ });
146
+
147
+ it('sends autoupload if specified in metadata', () => {
148
+ const autoupload = 'autoupload';
149
+ const result = webex.internal.support._constructFileMetadata({autoupload});
150
+ const found = result.find((attr) => attr.key === 'autoupload');
151
+
152
+ assert.equal(found?.value, autoupload);
153
+ });
77
154
  });
78
155
 
79
156
  describe('#submitLogs()', () => {