[v10.1.x] Subpath: Add check for url being same as subpath on stripBaseFromUrl (#75755)
Subpath: Add check for url being same as subpath on stripBaseFromUrl (#75670)
* Subpath: Add check for url being same as subpath
* Better comment
(cherry picked from commit 59f0f9a93e)
Co-authored-by: Joao Silva <100691367+JoaoSilvaGrafana@users.noreply.github.com>
This commit is contained in:
co-authored by
Joao Silva
parent
21833d2526
commit
493161fa21
@@ -54,6 +54,10 @@ describe('locationUtil', () => {
|
||||
const urlWithoutMaster = locationUtil.stripBaseFromUrl('/subUrl-backup/thisShouldRemain/');
|
||||
expect(urlWithoutMaster).toBe('/subUrl-backup/thisShouldRemain/');
|
||||
});
|
||||
test('relative url with same url', () => {
|
||||
const urlWithoutMaster = locationUtil.stripBaseFromUrl('/subUrl');
|
||||
expect(urlWithoutMaster).toBe('');
|
||||
});
|
||||
test('absolute url', () => {
|
||||
const urlWithoutMaster = locationUtil.stripBaseFromUrl('http://www.domain.com:9877/subUrl/thisShouldRemain/');
|
||||
expect(urlWithoutMaster).toBe('/thisShouldRemain/');
|
||||
@@ -74,6 +78,10 @@ describe('locationUtil', () => {
|
||||
);
|
||||
expect(urlWithoutMaster).toBe('http://www.domain.com:9877/subUrl-backup/thisShouldRemain/');
|
||||
});
|
||||
test('absolute url with same url', () => {
|
||||
const urlWithoutMaster = locationUtil.stripBaseFromUrl('http://www.domain.com:9877/subUrl');
|
||||
expect(urlWithoutMaster).toBe('');
|
||||
});
|
||||
});
|
||||
|
||||
describe('when appSubUrl not configured', () => {
|
||||
|
||||
@@ -43,9 +43,10 @@ const stripBaseFromUrl = (urlOrPath: string): string => {
|
||||
segmentToStrip = `${window.location.origin}${appSubUrl}`;
|
||||
}
|
||||
|
||||
// Check if the segment is followed by a '/' so it does not replace incorrect similarly named segments
|
||||
// Check if the segment is either exactly the same as the url
|
||||
// or followed by a '/' so it does not replace incorrect similarly named segments
|
||||
// i.e. /grafana should not replace /grafanadashboards
|
||||
return urlOrPath.length > 0 && urlOrPath.indexOf(segmentToStrip + '/') === 0
|
||||
return urlOrPath.length > 0 && (urlOrPath.indexOf(segmentToStrip + '/') === 0 || urlOrPath === segmentToStrip)
|
||||
? urlOrPath.slice(segmentToStrip.length - stripExtraChars)
|
||||
: urlOrPath;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user