diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/connection/SupersetClientClass.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/connection/SupersetClientClass.ts index 91fca25dde41a..a860d7bd6ea2a 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/connection/SupersetClientClass.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/connection/SupersetClientClass.ts @@ -74,7 +74,7 @@ export default class SupersetClientClass { this.baseUrl = url.href.replace(/\/+$/, ''); // always strip trailing slash this.host = url.host; this.protocol = url.protocol as Protocol; - this.headers = { ...headers }; + this.headers = { Accept: 'application/json', ...headers }; // defaulting accept to json this.mode = mode; this.timeout = timeout; this.credentials = credentials; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/connection/SupersetClient.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/connection/SupersetClient.test.ts index cbe67b1508fcb..79596d428ca2b 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/connection/SupersetClient.test.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/connection/SupersetClient.test.ts @@ -53,7 +53,7 @@ describe('SupersetClient', () => { // this also tests that the ^above doesn't throw if configure is called appropriately it('calls appropriate SupersetClient methods when configured', async () => { - expect.assertions(10); + expect.assertions(15); const mockGetUrl = '/mock/get/url'; const mockPostUrl = '/mock/post/url'; const mockRequestUrl = '/mock/request/url'; @@ -90,6 +90,16 @@ describe('SupersetClient', () => { await SupersetClient.delete({ url: mockDeleteUrl }); await SupersetClient.put({ url: mockPutUrl }); await SupersetClient.request({ url: mockRequestUrl }); + + // Make sure network calls have Accept: 'application/json' in headers + const networkCalls = [mockGetUrl, mockPostUrl, mockRequestUrl, mockPutUrl, mockDeleteUrl]; + networkCalls.map((url: string) => + expect(fetchMock.calls(url)[0][1]?.headers).toStrictEqual({ + Accept: 'application/json', + 'X-CSRFToken': '', + }), + ); + SupersetClient.isAuthenticated(); await SupersetClient.reAuthenticate();