From e58d3dd70c13fa39e64fc7d5da19183564d0e7b5 Mon Sep 17 00:00:00 2001 From: Eduard Heimbuch Date: Fri, 19 Nov 2021 14:33:06 +0100 Subject: [PATCH 1/3] Fix repository file search (#1867) --- gradle/changelog/fix_file_search.yaml | 2 + .../repository_code_filesearch.feature | 35 ++++++++++++++++++ .../support/step_definitions/scm-manager.js | 37 +++++++++++++++++++ .../ui-components/src/forms/FilterInput.tsx | 9 ++--- .../components/FileSearchButton.tsx | 6 ++- .../components/FileSearchResults.tsx | 4 +- .../codeSection/containers/FileSearch.tsx | 5 ++- 7 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 gradle/changelog/fix_file_search.yaml create mode 100644 scm-ui/e2e-tests/cypress/integration/repository_code_filesearch.feature create mode 100644 scm-ui/e2e-tests/cypress/support/step_definitions/scm-manager.js diff --git a/gradle/changelog/fix_file_search.yaml b/gradle/changelog/fix_file_search.yaml new file mode 100644 index 0000000000..53864c9a44 --- /dev/null +++ b/gradle/changelog/fix_file_search.yaml @@ -0,0 +1,2 @@ +- type: fixed + description: Repository file search ([#1867](https://github.com/scm-manager/scm-manager/pull/1867)) diff --git a/scm-ui/e2e-tests/cypress/integration/repository_code_filesearch.feature b/scm-ui/e2e-tests/cypress/integration/repository_code_filesearch.feature new file mode 100644 index 0000000000..5e42d94ec2 --- /dev/null +++ b/scm-ui/e2e-tests/cypress/integration/repository_code_filesearch.feature @@ -0,0 +1,35 @@ +# +# MIT License +# +# Copyright (c) 2020-present Cloudogu GmbH and Contributors +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# + +Feature: Repository File Search + + Background: + Given User is authenticated + And A git repository exists + + Scenario: Search file inside repository + Given User has permission to read and write repository + When User visits repository + And User performs file search inside repository + Then The search results are found diff --git a/scm-ui/e2e-tests/cypress/support/step_definitions/scm-manager.js b/scm-ui/e2e-tests/cypress/support/step_definitions/scm-manager.js new file mode 100644 index 0000000000..d57cc6938c --- /dev/null +++ b/scm-ui/e2e-tests/cypress/support/step_definitions/scm-manager.js @@ -0,0 +1,37 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +When("User visits repository", function() { + cy.visit(`/repo/${this.repository.namespace}/${this.repository.name}/code/sources`); +}); + +When("User performs file search inside repository", function() { + cy.byTestId("file_search_button").click(); + cy.url().should("include", `/repo/${this.repository.namespace}/${this.repository.name}/code/search/main?q=`); + cy.get("[data-testid=file_search_filter_input]").type("README"); +}); + +Then("The search results are found", function() { + cy.get("[data-testid=file_search_single_result]").contains("README.md"); +}); diff --git a/scm-ui/ui-components/src/forms/FilterInput.tsx b/scm-ui/ui-components/src/forms/FilterInput.tsx index 18c16ee36d..913d879c2f 100644 --- a/scm-ui/ui-components/src/forms/FilterInput.tsx +++ b/scm-ui/ui-components/src/forms/FilterInput.tsx @@ -67,20 +67,17 @@ const FilterInput: FC = ({ filter, value, testId, placeholder, autoFocus, }; return ( -
+
setStateValue(event.target.value)} + onChange={event => setStateValue(event.target.value)} autoFocus={autoFocus || false} aria-describedby={id} + {...createAttributesForTesting(testId)} /> diff --git a/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchButton.tsx b/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchButton.tsx index 8e567e4dea..53ade6fc2f 100644 --- a/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchButton.tsx +++ b/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchButton.tsx @@ -39,7 +39,11 @@ const SearchIcon = styled(Icon)` const FileSearchButton: FC = ({ baseUrl, revision }) => { const [t] = useTranslation("repos"); return ( - + ); diff --git a/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchResults.tsx b/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchResults.tsx index b0e884efc5..5a83cf2eb6 100644 --- a/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchResults.tsx +++ b/scm-ui/ui-webapp/src/repos/codeSection/components/FileSearchResults.tsx @@ -62,7 +62,7 @@ const PathResultRow: FC = ({ contentBaseUrl, path }) => { - + {path} @@ -78,7 +78,7 @@ type ResultTableProps = { const ResultTable: FC = ({ contentBaseUrl, paths }) => ( - {paths.map((path) => ( + {paths.map(path => ( ))} diff --git a/scm-ui/ui-webapp/src/repos/codeSection/containers/FileSearch.tsx b/scm-ui/ui-webapp/src/repos/codeSection/containers/FileSearch.tsx index 072ef0cbc2..e5c187cfe6 100644 --- a/scm-ui/ui-webapp/src/repos/codeSection/containers/FileSearch.tsx +++ b/scm-ui/ui-webapp/src/repos/codeSection/containers/FileSearch.tsx @@ -28,7 +28,7 @@ import classNames from "classnames"; import styled from "styled-components"; import { Branch, Repository } from "@scm-manager/ui-types"; import { urls, usePaths } from "@scm-manager/ui-api"; -import { ErrorNotification, FilterInput, Help, Icon, Loading } from "@scm-manager/ui-components"; +import { createA11yId, ErrorNotification, FilterInput, Help, Icon, Loading } from "@scm-manager/ui-components"; import CodeActionBar from "../components/CodeActionBar"; import FileSearchResults from "../components/FileSearchResults"; import { filepathSearch } from "../utils/filepathSearch"; @@ -91,7 +91,7 @@ const FileSearch: FC = ({ repository, baseUrl, branches, selectedBranch } }; const contentBaseUrl = `${baseUrl}/sources/${revision}/`; - const id = useA11yId("file-search"); + const id = createA11yId("file-search"); return ( <> @@ -123,6 +123,7 @@ const FileSearch: FC = ({ repository, baseUrl, branches, selectedBranch } filter={search} autoFocus={true} id={id} + testId="file_search_filter_input" /> From 876b1d2a8037472c3654fa0c2f50e726c6b8e920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Fri, 19 Nov 2021 14:39:52 +0100 Subject: [PATCH 2/3] Adjust changelog for release 2.27.2 --- CHANGELOG.md | 5 +++++ gradle/changelog/fix_file_search.yaml | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) delete mode 100644 gradle/changelog/fix_file_search.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index c2d1647dcc..76747d109d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.27.2] - 2021-11-19 +### Fixed +- Repository file search ([#1867](https://github.com/scm-manager/scm-manager/pull/1867)) + ## [2.27.1] - 2021-11-18 ### Fixed - Sporadic error "Automatic publicPath is not supported in this browser" (updated plugin-scripts to v1.2.2) @@ -835,3 +839,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [2.26.1]: https://scm-manager.org/download/2.26.1 [2.27.0]: https://scm-manager.org/download/2.27.0 [2.27.1]: https://scm-manager.org/download/2.27.1 +[2.27.2]: https://scm-manager.org/download/2.27.2 diff --git a/gradle/changelog/fix_file_search.yaml b/gradle/changelog/fix_file_search.yaml deleted file mode 100644 index 53864c9a44..0000000000 --- a/gradle/changelog/fix_file_search.yaml +++ /dev/null @@ -1,2 +0,0 @@ -- type: fixed - description: Repository file search ([#1867](https://github.com/scm-manager/scm-manager/pull/1867)) From e53476632b62287e7aa0955a5464957b9f68965a Mon Sep 17 00:00:00 2001 From: CES Marvin Date: Fri, 19 Nov 2021 13:48:55 +0000 Subject: [PATCH 3/3] Release version 2.27.2 --- gradle.properties | 2 +- lerna.json | 2 +- scm-plugins/scm-git-plugin/package.json | 4 ++-- scm-plugins/scm-hg-plugin/package.json | 4 ++-- scm-plugins/scm-legacy-plugin/package.json | 4 ++-- scm-plugins/scm-svn-plugin/package.json | 4 ++-- scm-ui/e2e-tests/package.json | 2 +- scm-ui/ui-api/package.json | 4 ++-- scm-ui/ui-components/package.json | 10 +++++----- scm-ui/ui-extensions/package.json | 4 ++-- scm-ui/ui-plugins/package.json | 12 ++++++------ scm-ui/ui-polyfill/package.json | 2 +- scm-ui/ui-scripts/package.json | 2 +- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-tests/package.json | 2 +- scm-ui/ui-types/package.json | 2 +- scm-ui/ui-webapp/package.json | 10 +++++----- 17 files changed, 36 insertions(+), 36 deletions(-) diff --git a/gradle.properties b/gradle.properties index e212bb3d02..aae760db1d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,5 +22,5 @@ # SOFTWARE. # group = sonia.scm -version = 2.27.2-SNAPSHOT +version = 2.27.2 org.gradle.jvmargs=-Xmx1024M diff --git a/lerna.json b/lerna.json index 58677fa199..bf6f91a0ce 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "npmClient": "yarn", "useWorkspaces": true, - "version": "2.27.2-SNAPSHOT" + "version": "2.27.2" } diff --git a/scm-plugins/scm-git-plugin/package.json b/scm-plugins/scm-git-plugin/package.json index 30517bee18..e62470f875 100644 --- a/scm-plugins/scm-git-plugin/package.json +++ b/scm-plugins/scm-git-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-git-plugin", "private": true, - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -11,7 +11,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "^2.27.2-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.27.2" }, "devDependencies": { "@scm-manager/babel-preset": "^2.12.0", diff --git a/scm-plugins/scm-hg-plugin/package.json b/scm-plugins/scm-hg-plugin/package.json index 8368ee400b..7a24aa00f7 100644 --- a/scm-plugins/scm-hg-plugin/package.json +++ b/scm-plugins/scm-hg-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-hg-plugin", "private": true, - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "^2.27.2-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.27.2" }, "devDependencies": { "@scm-manager/babel-preset": "^2.12.0", diff --git a/scm-plugins/scm-legacy-plugin/package.json b/scm-plugins/scm-legacy-plugin/package.json index 0983b3a10f..da17a0fcb3 100644 --- a/scm-plugins/scm-legacy-plugin/package.json +++ b/scm-plugins/scm-legacy-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-legacy-plugin", "private": true, - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "license": "MIT", "main": "./src/main/js/index.tsx", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "^2.27.2-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.27.2" }, "devDependencies": { "@scm-manager/babel-preset": "^2.12.0", diff --git a/scm-plugins/scm-svn-plugin/package.json b/scm-plugins/scm-svn-plugin/package.json index 3fff21d708..7351771e54 100644 --- a/scm-plugins/scm-svn-plugin/package.json +++ b/scm-plugins/scm-svn-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-svn-plugin", "private": true, - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -10,7 +10,7 @@ "typecheck": "tsc" }, "dependencies": { - "@scm-manager/ui-plugins": "^2.27.2-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.27.2" }, "devDependencies": { "@scm-manager/babel-preset": "^2.12.0", diff --git a/scm-ui/e2e-tests/package.json b/scm-ui/e2e-tests/package.json index 1ee9a15d4b..65db716c23 100644 --- a/scm-ui/e2e-tests/package.json +++ b/scm-ui/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/e2e-tests", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "End to end Tests for SCM-Manager", "main": "index.js", "author": "Eduard Heimbuch ", diff --git a/scm-ui/ui-api/package.json b/scm-ui/ui-api/package.json index 48ac9c700d..8f71e7ec50 100644 --- a/scm-ui/ui-api/package.json +++ b/scm-ui/ui-api/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-api", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "React hook api for the SCM-Manager backend", "main": "src/index.ts", "files": [ @@ -25,7 +25,7 @@ "react-test-renderer": "^17.0.1" }, "dependencies": { - "@scm-manager/ui-types": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-types": "^2.27.2", "fetch-mock-jest": "^1.5.1", "gitdiff-parser": "^0.1.2", "query-string": "5", diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 0cc2b0dfc2..e21301eccf 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-components", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "UI Components for SCM-Manager and its plugins", "main": "src/index.ts", "files": [ @@ -25,7 +25,7 @@ "@scm-manager/jest-preset": "^2.13.0", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.12.0", - "@scm-manager/ui-tests": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-tests": "^2.27.2", "@storybook/addon-actions": "^6.3.12", "@storybook/addon-storyshots": "^6.3.12", "@storybook/builder-webpack5": "^6.3.12", @@ -67,9 +67,9 @@ "worker-plugin": "^3.2.0" }, "dependencies": { - "@scm-manager/ui-api": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-extensions": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-types": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-api": "^2.27.2", + "@scm-manager/ui-extensions": "^2.27.2", + "@scm-manager/ui-types": "^2.27.2", "classnames": "^2.2.6", "date-fns": "^2.4.1", "deepmerge": "^4.2.2", diff --git a/scm-ui/ui-extensions/package.json b/scm-ui/ui-extensions/package.json index accdf81d6e..4f58cf7486 100644 --- a/scm-ui/ui-extensions/package.json +++ b/scm-ui/ui-extensions/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-extensions", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "main": "src/index.ts", "license": "MIT", "private": false, @@ -10,7 +10,7 @@ "test": "jest" }, "dependencies": { - "@scm-manager/ui-types": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-types": "^2.27.2", "react": "^17.0.1" }, "devDependencies": { diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json index 0d08a840a7..d0cb07223a 100644 --- a/scm-ui/ui-plugins/package.json +++ b/scm-ui/ui-plugins/package.json @@ -1,13 +1,13 @@ { "name": "@scm-manager/ui-plugins", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "license": "MIT", "bin": { "ui-plugins": "./bin/ui-plugins.js" }, "dependencies": { - "@scm-manager/ui-components": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-extensions": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-components": "^2.27.2", + "@scm-manager/ui-extensions": "^2.27.2", "classnames": "^2.2.6", "query-string": "^5.0.1", "react": "^17.0.1", @@ -25,9 +25,9 @@ "@scm-manager/plugin-scripts": "^1.2.2", "@scm-manager/prettier-config": "^2.10.1", "@scm-manager/tsconfig": "^2.12.0", - "@scm-manager/ui-scripts": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-tests": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-types": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-scripts": "^2.27.2", + "@scm-manager/ui-tests": "^2.27.2", + "@scm-manager/ui-types": "^2.27.2", "@types/classnames": "^2.2.9", "@types/enzyme": "^3.10.3", "@types/fetch-mock": "^7.3.1", diff --git a/scm-ui/ui-polyfill/package.json b/scm-ui/ui-polyfill/package.json index c53830415a..e7d70f02c3 100644 --- a/scm-ui/ui-polyfill/package.json +++ b/scm-ui/ui-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-polyfill", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "Polyfills for SCM-Manager UI", "main": "src/index.js", "author": "Sebastian Sdorra ", diff --git a/scm-ui/ui-scripts/package.json b/scm-ui/ui-scripts/package.json index e3dcff1696..02203d2f9e 100644 --- a/scm-ui/ui-scripts/package.json +++ b/scm-ui/ui-scripts/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-scripts", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "Build scripts for SCM-Manager", "main": "src/index.js", "author": "Sebastian Sdorra ", diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 42b1252b71..3c144df137 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-styles", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "Styles for SCM-Manager", "main": "src/scm.scss", "license": "MIT", diff --git a/scm-ui/ui-tests/package.json b/scm-ui/ui-tests/package.json index 8a237f3284..94825f2246 100644 --- a/scm-ui/ui-tests/package.json +++ b/scm-ui/ui-tests/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-tests", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "UI-Tests helpers", "author": "Sebastian Sdorra ", "license": "MIT", diff --git a/scm-ui/ui-types/package.json b/scm-ui/ui-types/package.json index e6bc181b2d..64a025ad9b 100644 --- a/scm-ui/ui-types/package.json +++ b/scm-ui/ui-types/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-types", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "description": "Typescript types for SCM-Manager related Objects", "main": "src/index.ts", "files": [ diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json index 386ecee500..c874e670b1 100644 --- a/scm-ui/ui-webapp/package.json +++ b/scm-ui/ui-webapp/package.json @@ -1,11 +1,11 @@ { "name": "@scm-manager/ui-webapp", - "version": "2.27.2-SNAPSHOT", + "version": "2.27.2", "private": true, "dependencies": { - "@scm-manager/ui-api": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-components": "^2.27.2-SNAPSHOT", - "@scm-manager/ui-extensions": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-api": "^2.27.2", + "@scm-manager/ui-components": "^2.27.2", + "@scm-manager/ui-extensions": "^2.27.2", "classnames": "^2.2.5", "history": "^4.10.1", "i18next": "^19.6.0", @@ -29,7 +29,7 @@ }, "devDependencies": { "@scm-manager/jest-preset": "^2.13.0", - "@scm-manager/ui-tests": "^2.27.2-SNAPSHOT", + "@scm-manager/ui-tests": "^2.27.2", "@types/classnames": "^2.2.9", "@types/enzyme": "^3.10.3", "@types/fetch-mock": "^7.3.1",