Commit fa29ff0d by Daniel Lee

fixes switching org when url contains orgId querystring param

parent 8ea94817
...@@ -61,10 +61,19 @@ export class OrgSwitchCtrl { ...@@ -61,10 +61,19 @@ export class OrgSwitchCtrl {
} }
setUsingOrg(org) { setUsingOrg(org) {
this.backendSrv.post('/api/user/using/' + org.orgId).then(() => { return this.backendSrv.post('/api/user/using/' + org.orgId).then(() => {
window.location.href = window.location.href; const re = /orgId=\d+/gi;
this.setWindowLocationHref(this.getWindowLocationHref().replace(re, 'orgId=' + org.orgId));
}); });
} }
getWindowLocationHref() {
return window.location.href;
}
setWindowLocationHref(href: string) {
window.location.href = href;
}
} }
export function orgSwitcher() { export function orgSwitcher() {
......
import {OrgSwitchCtrl} from '../components/org_switcher';
import q from 'q';
jest.mock('app/core/services/context_srv', () => ({
contextSrv: {
user: {orgId: 1}
}
}));
describe('OrgSwitcher', () => {
describe('when switching org', () => {
let expectedHref;
let expectedUsingUrl;
beforeEach(() => {
const backendSrvStub: any = {
get: (url) => { return q.resolve([]); },
post: (url) => { expectedUsingUrl = url; return q.resolve({}); }
};
const orgSwitcherCtrl = new OrgSwitchCtrl(backendSrvStub);
orgSwitcherCtrl.getWindowLocationHref = () => 'http://localhost:3000?orgId=1';
orgSwitcherCtrl.setWindowLocationHref = (href) => expectedHref = href;
return orgSwitcherCtrl.setUsingOrg({orgId: 2});
});
it('should switch orgId in call to backend', () => {
expect(expectedUsingUrl).toBe('/api/user/using/2');
});
it('should switch orgId in url', () => {
expect(expectedHref).toBe('http://localhost:3000?orgId=2');
});
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment