@backstage/frontend-test-utils 0.6.4-next.0 → 0.6.4-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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @backstage/frontend-test-utils
2
2
 
3
+ ## 0.6.4-next.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 279fdf6: Declared the DOM Testing Library dependency required by React Testing Library.
8
+ - Updated dependencies
9
+ - @backstage/frontend-plugin-api@0.18.1-next.0
10
+ - @backstage/filter-predicates@0.1.5-next.0
11
+ - @backstage/test-utils@1.7.22-next.1
12
+ - @backstage/plugin-app@0.5.3-next.1
13
+ - @backstage/frontend-app-api@0.16.8-next.1
14
+ - @backstage/core-plugin-api@1.12.10-next.0
15
+ - @backstage/plugin-app-react@0.2.7-next.0
16
+ - @backstage/core-app-api@1.20.5-next.1
17
+ - @backstage/plugin-permission-react@0.5.5-next.0
18
+
3
19
  ## 0.6.4-next.0
4
20
 
5
21
  ### Patch Changes
@@ -53,11 +53,19 @@ function expandShorthandExtensionParameters(arrayEntry, arrayIndex) {
53
53
  disabled: !value
54
54
  };
55
55
  }
56
+ if (value === "true" || value === "false") {
57
+ return {
58
+ id,
59
+ disabled: value === "false"
60
+ };
61
+ }
56
62
  if (typeof value !== "object" || Array.isArray(value)) {
57
- throw new Error(errorMsg("value must be a boolean or object", id));
63
+ throw new Error(
64
+ errorMsg("value must be a boolean, 'true', 'false', or object", id)
65
+ );
58
66
  }
59
67
  const attachTo = value.attachTo;
60
- const disabled = value.disabled;
68
+ let disabled = value.disabled;
61
69
  const config = value.config;
62
70
  if (attachTo !== void 0) {
63
71
  if (attachTo === null || typeof attachTo !== "object" || Array.isArray(attachTo)) {
@@ -75,7 +83,13 @@ function expandShorthandExtensionParameters(arrayEntry, arrayIndex) {
75
83
  }
76
84
  }
77
85
  if (disabled !== void 0 && typeof disabled !== "boolean") {
78
- throw new Error(errorMsg("must be a boolean", id, "disabled"));
86
+ if (disabled === "true" || disabled === "false") {
87
+ disabled = disabled === "true";
88
+ } else {
89
+ throw new Error(
90
+ errorMsg("must be a boolean, 'true', or 'false'", id, "disabled")
91
+ );
92
+ }
79
93
  }
80
94
  if (config !== void 0 && (typeof config !== "object" || config === null || Array.isArray(config))) {
81
95
  throw new Error(errorMsg("must be an object", id, "config"));
@@ -1 +1 @@
1
- {"version":3,"file":"readAppExtensionsConfig.esm.js","sources":["../../../../../frontend-app-api/src/tree/readAppExtensionsConfig.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Config } from '@backstage/config';\nimport { JsonValue } from '@backstage/types';\n\nexport interface ExtensionParameters {\n id: string;\n attachTo?: { id: string; input: string };\n disabled?: boolean;\n config?: unknown;\n}\n\nconst knownExtensionParameters = ['attachTo', 'disabled', 'config'];\n\n// Since we'll never merge arrays in config the config reader context\n// isn't too much of a help. Fall back to manual config reading logic\n// as the Config interface makes it quite hard for us otherwise.\n/** @internal */\nexport function readAppExtensionsConfig(\n rootConfig: Config,\n): ExtensionParameters[] {\n const arr = rootConfig.getOptional('app.extensions');\n if (!Array.isArray(arr)) {\n if (arr === undefined) {\n return [];\n }\n // This will throw, and show which part of config had the wrong type\n rootConfig.getConfigArray('app.extensions');\n return [];\n }\n\n return arr.map((arrayEntry, arrayIndex) =>\n expandShorthandExtensionParameters(arrayEntry, arrayIndex),\n );\n}\n\n/** @internal */\nexport function expandShorthandExtensionParameters(\n arrayEntry: JsonValue,\n arrayIndex: number,\n): ExtensionParameters {\n function errorMsg(msg: string, key?: string, prop?: string) {\n return `Invalid extension configuration at app.extensions[${arrayIndex}]${\n key ? `[${key}]` : ''\n }${prop ? `.${prop}` : ''}, ${msg}`;\n }\n\n // NOTE(freben): This check is intentionally not complete and doesn't check\n // whether letters and digits are used, etc. It's not up to the config reading\n // logic to decide what constitutes a valid extension ID; that should be\n // decided by the logic that loads and instantiates the extensions. This check\n // is just here to catch real mistakes or truly conceptually wrong input.\n function assertValidId(id: string) {\n if (!id || id !== id.trim()) {\n throw new Error(\n errorMsg('extension ID must not be empty or contain whitespace'),\n );\n }\n }\n\n // Example YAML:\n // - entity.card.about\n if (typeof arrayEntry === 'string') {\n assertValidId(arrayEntry);\n return {\n id: arrayEntry,\n disabled: false,\n };\n }\n\n // All remaining cases are single-key objects\n if (\n typeof arrayEntry !== 'object' ||\n arrayEntry === null ||\n Array.isArray(arrayEntry)\n ) {\n throw new Error(errorMsg('must be a string or an object'));\n }\n const keys = Object.keys(arrayEntry);\n if (keys.length !== 1) {\n const joinedKeys = keys.length ? `'${keys.join(\"', '\")}'` : 'none';\n throw new Error(errorMsg(`must have exactly one key, got ${joinedKeys}`));\n }\n\n const id = String(keys[0]);\n const value = arrayEntry[id];\n assertValidId(id);\n\n // This example covers a potentially common mistake in the syntax\n // Example YAML:\n // - entity.card.about:\n if (value === null) {\n return {\n id,\n disabled: false,\n };\n }\n\n // Example YAML:\n // - catalog.page.cicd: false\n if (typeof value === 'boolean') {\n return {\n id,\n disabled: !value,\n };\n }\n\n // The remaining case is the generic object. Example YAML:\n // - tech-radar.page:\n // at: core.router/routes\n // disabled: false\n // config:\n // path: /tech-radar\n // width: 1500\n // height: 800\n if (typeof value !== 'object' || Array.isArray(value)) {\n // We don't mention null here - we don't want people to explicitly enter\n // - entity.card.about: null\n throw new Error(errorMsg('value must be a boolean or object', id));\n }\n\n const attachTo = value.attachTo as { id: string; input: string } | undefined;\n const disabled = value.disabled;\n const config = value.config;\n\n if (attachTo !== undefined) {\n if (\n attachTo === null ||\n typeof attachTo !== 'object' ||\n Array.isArray(attachTo)\n ) {\n throw new Error(errorMsg('must be an object', id, 'attachTo'));\n }\n if (typeof attachTo.id !== 'string' || attachTo.id === '') {\n throw new Error(\n errorMsg('must be a non-empty string', id, 'attachTo.id'),\n );\n }\n if (typeof attachTo.input !== 'string' || attachTo.input === '') {\n throw new Error(\n errorMsg('must be a non-empty string', id, 'attachTo.input'),\n );\n }\n }\n if (disabled !== undefined && typeof disabled !== 'boolean') {\n throw new Error(errorMsg('must be a boolean', id, 'disabled'));\n }\n if (\n config !== undefined &&\n (typeof config !== 'object' || config === null || Array.isArray(config))\n ) {\n throw new Error(errorMsg('must be an object', id, 'config'));\n }\n\n const unknownKeys = Object.keys(value).filter(\n k => !knownExtensionParameters.includes(k),\n );\n if (unknownKeys.length > 0) {\n throw new Error(\n errorMsg(\n `unknown parameter; expected one of '${knownExtensionParameters.join(\n \"', '\",\n )}'`,\n id,\n unknownKeys.join(', '),\n ),\n );\n }\n\n return {\n id,\n attachTo,\n disabled,\n config,\n };\n}\n"],"names":["id"],"mappings":"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"}
1
+ {"version":3,"file":"readAppExtensionsConfig.esm.js","sources":["../../../../../frontend-app-api/src/tree/readAppExtensionsConfig.ts"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Config } from '@backstage/config';\nimport { JsonValue } from '@backstage/types';\n\nexport interface ExtensionParameters {\n id: string;\n attachTo?: { id: string; input: string };\n disabled?: boolean;\n config?: unknown;\n}\n\nconst knownExtensionParameters = ['attachTo', 'disabled', 'config'];\n\n// Since we'll never merge arrays in config the config reader context\n// isn't too much of a help. Fall back to manual config reading logic\n// as the Config interface makes it quite hard for us otherwise.\n/** @internal */\nexport function readAppExtensionsConfig(\n rootConfig: Config,\n): ExtensionParameters[] {\n const arr = rootConfig.getOptional('app.extensions');\n if (!Array.isArray(arr)) {\n if (arr === undefined) {\n return [];\n }\n // This will throw, and show which part of config had the wrong type\n rootConfig.getConfigArray('app.extensions');\n return [];\n }\n\n return arr.map((arrayEntry, arrayIndex) =>\n expandShorthandExtensionParameters(arrayEntry, arrayIndex),\n );\n}\n\n/** @internal */\nexport function expandShorthandExtensionParameters(\n arrayEntry: JsonValue,\n arrayIndex: number,\n): ExtensionParameters {\n function errorMsg(msg: string, key?: string, prop?: string) {\n return `Invalid extension configuration at app.extensions[${arrayIndex}]${\n key ? `[${key}]` : ''\n }${prop ? `.${prop}` : ''}, ${msg}`;\n }\n\n // NOTE(freben): This check is intentionally not complete and doesn't check\n // whether letters and digits are used, etc. It's not up to the config reading\n // logic to decide what constitutes a valid extension ID; that should be\n // decided by the logic that loads and instantiates the extensions. This check\n // is just here to catch real mistakes or truly conceptually wrong input.\n function assertValidId(id: string) {\n if (!id || id !== id.trim()) {\n throw new Error(\n errorMsg('extension ID must not be empty or contain whitespace'),\n );\n }\n }\n\n // Example YAML:\n // - entity.card.about\n if (typeof arrayEntry === 'string') {\n assertValidId(arrayEntry);\n return {\n id: arrayEntry,\n disabled: false,\n };\n }\n\n // All remaining cases are single-key objects\n if (\n typeof arrayEntry !== 'object' ||\n arrayEntry === null ||\n Array.isArray(arrayEntry)\n ) {\n throw new Error(errorMsg('must be a string or an object'));\n }\n const keys = Object.keys(arrayEntry);\n if (keys.length !== 1) {\n const joinedKeys = keys.length ? `'${keys.join(\"', '\")}'` : 'none';\n throw new Error(errorMsg(`must have exactly one key, got ${joinedKeys}`));\n }\n\n const id = String(keys[0]);\n const value = arrayEntry[id];\n assertValidId(id);\n\n // This example covers a potentially common mistake in the syntax\n // Example YAML:\n // - entity.card.about:\n if (value === null) {\n return {\n id,\n disabled: false,\n };\n }\n\n // Example YAML:\n // - catalog.page.cicd: false\n if (typeof value === 'boolean') {\n return {\n id,\n disabled: !value,\n };\n }\n\n // Environment variable substitution always produces a string, so boolean-ish\n // strings need to be coerced too. Example YAML:\n // - catalog.page.cicd: ${CATALOG_PAGE_CICD_ENABLED}\n if (value === 'true' || value === 'false') {\n return {\n id,\n disabled: value === 'false',\n };\n }\n\n // The remaining case is the generic object. Example YAML:\n // - tech-radar.page:\n // at: core.router/routes\n // disabled: false\n // config:\n // path: /tech-radar\n // width: 1500\n // height: 800\n if (typeof value !== 'object' || Array.isArray(value)) {\n // We don't mention null here - we don't want people to explicitly enter\n // - entity.card.about: null\n throw new Error(\n errorMsg(\"value must be a boolean, 'true', 'false', or object\", id),\n );\n }\n\n const attachTo = value.attachTo as { id: string; input: string } | undefined;\n let disabled = value.disabled;\n const config = value.config;\n\n if (attachTo !== undefined) {\n if (\n attachTo === null ||\n typeof attachTo !== 'object' ||\n Array.isArray(attachTo)\n ) {\n throw new Error(errorMsg('must be an object', id, 'attachTo'));\n }\n if (typeof attachTo.id !== 'string' || attachTo.id === '') {\n throw new Error(\n errorMsg('must be a non-empty string', id, 'attachTo.id'),\n );\n }\n if (typeof attachTo.input !== 'string' || attachTo.input === '') {\n throw new Error(\n errorMsg('must be a non-empty string', id, 'attachTo.input'),\n );\n }\n }\n if (disabled !== undefined && typeof disabled !== 'boolean') {\n // Environment variable substitution always produces a string, e.g.\n // disabled: ${CATALOG_OVERVIEW_DISABLED}\n if (disabled === 'true' || disabled === 'false') {\n disabled = disabled === 'true';\n } else {\n throw new Error(\n errorMsg(\"must be a boolean, 'true', or 'false'\", id, 'disabled'),\n );\n }\n }\n if (\n config !== undefined &&\n (typeof config !== 'object' || config === null || Array.isArray(config))\n ) {\n throw new Error(errorMsg('must be an object', id, 'config'));\n }\n\n const unknownKeys = Object.keys(value).filter(\n k => !knownExtensionParameters.includes(k),\n );\n if (unknownKeys.length > 0) {\n throw new Error(\n errorMsg(\n `unknown parameter; expected one of '${knownExtensionParameters.join(\n \"', '\",\n )}'`,\n id,\n unknownKeys.join(', '),\n ),\n );\n }\n\n return {\n id,\n attachTo,\n disabled,\n config,\n };\n}\n"],"names":["id"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/frontend-test-utils",
3
- "version": "0.6.4-next.0",
3
+ "version": "0.6.4-next.1",
4
4
  "backstage": {
5
5
  "role": "web-library"
6
6
  },
@@ -32,16 +32,16 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@backstage/config": "1.3.8",
35
- "@backstage/core-app-api": "1.20.5-next.0",
36
- "@backstage/core-plugin-api": "1.12.9",
37
- "@backstage/filter-predicates": "0.1.4",
38
- "@backstage/frontend-app-api": "0.16.8-next.0",
39
- "@backstage/frontend-plugin-api": "0.18.0",
40
- "@backstage/plugin-app": "0.5.3-next.0",
41
- "@backstage/plugin-app-react": "0.2.6",
35
+ "@backstage/core-app-api": "1.20.5-next.1",
36
+ "@backstage/core-plugin-api": "1.12.10-next.0",
37
+ "@backstage/filter-predicates": "0.1.5-next.0",
38
+ "@backstage/frontend-app-api": "0.16.8-next.1",
39
+ "@backstage/frontend-plugin-api": "0.18.1-next.0",
40
+ "@backstage/plugin-app": "0.5.3-next.1",
41
+ "@backstage/plugin-app-react": "0.2.7-next.0",
42
42
  "@backstage/plugin-permission-common": "0.9.10",
43
- "@backstage/plugin-permission-react": "0.5.4",
44
- "@backstage/test-utils": "1.7.22-next.0",
43
+ "@backstage/plugin-permission-react": "0.5.5-next.0",
44
+ "@backstage/test-utils": "1.7.22-next.1",
45
45
  "@backstage/types": "1.2.2",
46
46
  "@backstage/version-bridge": "1.0.12",
47
47
  "i18next": "^22.4.15",
@@ -60,6 +60,7 @@
60
60
  "react-router-dom": "^6.30.2"
61
61
  },
62
62
  "peerDependencies": {
63
+ "@testing-library/dom": "^10.0.0",
63
64
  "@testing-library/react": "^16.0.0",
64
65
  "@types/jest": "*",
65
66
  "@types/react": "^17.0.0 || ^18.0.0",