]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-11303 fix {instance} replacement in docs
authorStas Vilchik <stas.vilchik@sonarsource.com>
Wed, 10 Oct 2018 14:20:50 +0000 (16:20 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 11 Oct 2018 13:14:33 +0000 (15:14 +0200)
server/sonar-docs/src/templates/page.js
server/sonar-web/src/main/js/helpers/__tests__/markdown-test.ts
server/sonar-web/src/main/js/helpers/markdown.js

index ad61a0fb70ccfb81a44b091eb303a33909bd924d..c60e2a964ef748bc8870b30a163f21830df9cc3e 100644 (file)
@@ -101,7 +101,7 @@ export const query = graphql`
 `;
 
 function replaceInstanceTag(content) {
-  return content.replace('{instance}', 'SonarQube');
+  return content.replace(/{instance}/gi, 'SonarQube');
 }
 
 function replaceDynamicLinks(content) {
index 2e1db47c92e68ce1f34316431d7f9d893801214c..453b37bd4fcae62e133c5f211341c8a60e5ae1a9 100644 (file)
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
-import { getFrontMatter, separateFrontMatter } from '../markdown';
+import { getFrontMatter, separateFrontMatter, filterContent } from '../markdown';
+
+jest.mock('../system', () => ({
+  getInstance: () => 'SonarQube',
+  isSonarCloud: () => false
+}));
 
 it('returns parsed frontmatter of one item', () => {
   expect(
@@ -105,3 +110,9 @@ it('returns full content when frontmatter has bad formatting', () => {
 
   expect(separateFrontMatter(content)).toEqual({ content, frontmatter: {} });
 });
+
+it('replaces {instance}', () => {
+  expect(
+    filterContent('This is {instance} content. It replaces all {instance}{instance} messages')
+  ).toBe('This is SonarQube content. It replaces all SonarQubeSonarQube messages');
+});
index b41e590fcadb39d4f77847403585c27237f6a658..ac084deda784180fd8c220057da0d0af43bafdc8 100644 (file)
@@ -73,7 +73,7 @@ function parseFrontMatter(lines) {
  */
 function filterContent(content) {
   const { isSonarCloud, getInstance } = require('./system');
-  const contentWithInstance = content.replace('{instance}', getInstance());
+  const contentWithInstance = content.replace(/{instance}/gi, getInstance());
   const contentWithoutStatic = cutConditionalContent(contentWithInstance, 'static');
   return isSonarCloud()
     ? cutConditionalContent(contentWithoutStatic, 'sonarqube')