diff --git a/test/axios.test.js b/test/axios.test.js index 396f891..9f01e0c 100644 --- a/test/axios.test.js +++ b/test/axios.test.js @@ -32,8 +32,8 @@ const testSuite = () => { const call = addTemplate.mock.calls.find(args => args[0].src.includes('plugin.js')) const options = call[0].options const proto = options.https ? 'https' : 'http' - expect(options.baseURL.toString()).toBe(`${proto}://localhost:3000/test_api`) - expect(options.browserBaseURL.toString()).toBe('/test_api') + expect(options.baseURL.toString()).toBe(`${proto}://localhost:3000/api/test`) + expect(options.browserBaseURL.toString()).toBe('/api/test') }) test('asyncData', async () => { @@ -121,7 +121,7 @@ describe('module', () => { describe('other options', () => { beforeAll(async () => { config.axios = { - prefix: '/test_api', + prefix: '/api/test', proxy: {}, credentials: true, https: true, @@ -141,7 +141,7 @@ describe('other options', () => { describe('browserBaseURL', () => { beforeAll(async () => { config.axios = { - browserBaseURL: '/test_api' + browserBaseURL: '/api/test' } await setupNuxt(config) @@ -156,7 +156,7 @@ describe('browserBaseURL', () => { const call = addTemplate.mock.calls.find(args => args[0].src.includes('plugin.js')) const options = call[0].options expect(options.baseURL.toString()).toBe('http://localhost:3000/') - expect(options.browserBaseURL.toString()).toBe('/test_api') + expect(options.browserBaseURL.toString()).toBe('/api/test') }) }) diff --git a/test/fixture/api.js b/test/fixture/api.js deleted file mode 100644 index b2c3a6b..0000000 --- a/test/fixture/api.js +++ /dev/null @@ -1,20 +0,0 @@ -function sleep (ms) { - return new Promise((resolve) => { - setTimeout(resolve, ms) - }) -} - -module.exports = { - path: '/test_api', - async handler (req, res) { - const query = new URL(req.url, 'http://localhost:3000').query - if (query && query.delay) { - await sleep(query.delay) - } - - res.end(JSON.stringify({ - url: req.url, - method: req.method - })) - } -} diff --git a/test/fixture/api/cookie.js b/test/fixture/api/cookie.js new file mode 100644 index 0000000..c797e92 --- /dev/null +++ b/test/fixture/api/cookie.js @@ -0,0 +1,6 @@ +export default (req, res) => { + const reqValue = (new URLSearchParams(req.headers.cookie || '').get('mycookie') || '').split(';')[0].trim() + const newValue = Math.round(Math.random() * 1000) + '' + res.setHeader('Set-Cookie', `mycookie=${newValue}; path=/`) + res.end(JSON.stringify([reqValue, newValue], null, 2)) +} diff --git a/test/fixture/api/test.js b/test/fixture/api/test.js new file mode 100644 index 0000000..a88ad1f --- /dev/null +++ b/test/fixture/api/test.js @@ -0,0 +1,17 @@ +export default async (req, res) => { + const query = new URL(req.url, 'http://localhost:3000').query + if (query && query.delay) { + await sleep(query.delay) + } + + res.end(JSON.stringify({ + url: req.url, + method: req.method + })) +} + +function sleep (ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms) + }) +} diff --git a/test/fixture/nuxt.config.js b/test/fixture/nuxt.config.js index f09b76e..f457099 100644 --- a/test/fixture/nuxt.config.js +++ b/test/fixture/nuxt.config.js @@ -10,9 +10,12 @@ module.exports = { modules: [ { handler: require('../../') } ], - serverMiddleware: ['~/api.js'], + serverMiddleware: { + '/api/test': '~/api/test', + '/api/cookie': '~/api/cookie' + }, axios: { - prefix: '/test_api', + prefix: '/api', proxy: true, credentials: true, debug: true, diff --git a/test/fixture/pages/cancelToken.vue b/test/fixture/pages/cancelToken.vue index 25b901d..5b0148f 100644 --- a/test/fixture/pages/cancelToken.vue +++ b/test/fixture/pages/cancelToken.vue @@ -1,33 +1,35 @@ there should be no loading bar left over: - Fake Request + + Fake Request + diff --git a/test/fixture/pages/cookie-client.vue b/test/fixture/pages/cookie-client.vue new file mode 100644 index 0000000..230bcd0 --- /dev/null +++ b/test/fixture/pages/cookie-client.vue @@ -0,0 +1,21 @@ + + + Client proxy pass: {{ proxyWorks }} + + + + diff --git a/test/fixture/pages/cookie-server.vue b/test/fixture/pages/cookie-server.vue new file mode 100644 index 0000000..f3f3b88 --- /dev/null +++ b/test/fixture/pages/cookie-server.vue @@ -0,0 +1,26 @@ + + + SSRCookie: {{ ssrCookie }} + ClientCookie: {{ clientCookie }} + SSR proxy pass: {{ clientCookie === ssrCookie }} + + + + diff --git a/test/fixture/pages/mounted.vue b/test/fixture/pages/mounted.vue index 4c790ba..e22c6d0 100644 --- a/test/fixture/pages/mounted.vue +++ b/test/fixture/pages/mounted.vue @@ -14,7 +14,7 @@ export default { async mounted () { // Request with full url becasue we are in JSDom env - this.res = await this.$axios.$get('http://localhost:3000/test_api/foo/bar') + this.res = await this.$axios.$get('http://localhost:3000/api/test/foo/bar') } } diff --git a/test/fixture/pages/ssr.vue b/test/fixture/pages/ssr.vue index 059b47c..adbff9c 100644 --- a/test/fixture/pages/ssr.vue +++ b/test/fixture/pages/ssr.vue @@ -12,6 +12,12 @@ let reqCtr = 1 export default { + fetch ({ app, route }) { + const doLogin = route.query.login !== undefined + if (doLogin) { + app.$axios.setHeader('SessionId', reqCtr++) + } + }, computed: { axiosSessionId () { return this.$axios.defaults.headers.common.SessionId @@ -32,12 +38,6 @@ export default { 'X-Requested-With': 'XMLHttpRequest' } }) - }, - fetch ({ app, route }) { - const doLogin = route.query.login !== undefined - if (doLogin) { - app.$axios.setHeader('SessionId', reqCtr++) - } } }
Client proxy pass: {{ proxyWorks }}
SSRCookie: {{ ssrCookie }}
ClientCookie: {{ clientCookie }}
SSR proxy pass: {{ clientCookie === ssrCookie }}