fix some tests

This commit is contained in:
Henry Jameson 2026-06-17 21:05:54 +03:00
commit f535a14dfc
4 changed files with 12 additions and 27 deletions

View file

@ -69,7 +69,6 @@ export const paramsString = (params = {}) => {
export const promisedRequest = async ({ export const promisedRequest = async ({
method, method,
url, url,
params,
payload, payload,
formData, formData,
credentials, credentials,
@ -88,17 +87,6 @@ export const promisedRequest = async ({
options.headers['Content-Type'] = 'application/json' options.headers['Content-Type'] = 'application/json'
} }
if (params) {
url +=
'?' +
Object.entries(params)
.map(
([key, value]) =>
encodeURIComponent(key) + '=' + encodeURIComponent(value),
)
.join('&')
}
if (formData || payload) { if (formData || payload) {
options.body = formData || JSON.stringify(payload) options.body = formData || JSON.stringify(payload)
} }

View file

@ -82,7 +82,7 @@ export const useOAuthStore = defineStore('oauth', {
instance, instance,
}) })
this.setAppToken(res.data.access_token) this.setAppToken(res.data.access_token)
return res.access_token return res.data.access_token
}, },
/// Use this if you want to ensure the app is still valid to use. /// Use this if you want to ensure the app is still valid to use.
/// @return {string} The access token to the app (not attached to any user) /// @return {string} The access token to the app (not attached to any user)

View file

@ -2,6 +2,8 @@ import { HttpResponse, http } from 'msw'
import { setupWorker } from 'msw/browser' import { setupWorker } from 'msw/browser'
import { test as testBase } from 'vitest' import { test as testBase } from 'vitest'
export const testServer = ''
// https://mswjs.io/docs/recipes/vitest-browser-mode // https://mswjs.io/docs/recipes/vitest-browser-mode
export const injectMswToTest = (defaultHandlers) => { export const injectMswToTest = (defaultHandlers) => {
const worker = setupWorker(...defaultHandlers) const worker = setupWorker(...defaultHandlers)
@ -24,16 +26,14 @@ export const injectMswToTest = (defaultHandlers) => {
}) })
} }
export const testServer = 'https://test.server.example'
export const authApis = [ export const authApis = [
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.json({ return HttpResponse.json({
client_id: 'test-id', client_id: 'test-id',
client_secret: 'test-secret', client_secret: 'test-secret',
}) })
}), }),
http.get(`${testServer}/api/v1/apps/verify_credentials`, ({ request }) => { http.get('/api/v1/apps/verify_credentials', ({ request }) => {
const authHeader = request.headers.get('Authorization') const authHeader = request.headers.get('Authorization')
if ( if (
authHeader === 'Bearer test-app-token' || authHeader === 'Bearer test-app-token' ||
@ -50,7 +50,7 @@ export const authApis = [
) )
} }
}), }),
http.post(`${testServer}/oauth/token`, async ({ request }) => { http.post('/oauth/token', async ({ request }) => {
const data = await request.formData() const data = await request.formData()
if ( if (

View file

@ -5,10 +5,8 @@ import { createPinia, setActivePinia } from 'pinia'
import { import {
authApis, authApis,
injectMswToTest, injectMswToTest,
testServer,
} from '/test/fixtures/mock_api.js' } from '/test/fixtures/mock_api.js'
import { useInstanceStore } from 'src/stores/instance.js'
import { useOAuthStore } from 'src/stores/oauth.js' import { useOAuthStore } from 'src/stores/oauth.js'
const test = injectMswToTest(authApis) const test = injectMswToTest(authApis)
@ -16,7 +14,6 @@ const test = injectMswToTest(authApis)
describe('oauth store', () => { describe('oauth store', () => {
beforeEach(() => { beforeEach(() => {
setActivePinia(createTestingPinia({ stubActions: false })) setActivePinia(createTestingPinia({ stubActions: false }))
useInstanceStore().server = testServer
}) })
describe('createApp', () => { describe('createApp', () => {
@ -31,7 +28,7 @@ describe('oauth store', () => {
test('it should throw and not update if failed', async ({ worker }) => { test('it should throw and not update if failed', async ({ worker }) => {
worker.use( worker.use(
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.text('Throttled', { status: 429 }) return HttpResponse.text('Throttled', { status: 429 })
}), }),
) )
@ -56,7 +53,7 @@ describe('oauth store', () => {
test('it should not create an app if it exists', async ({ worker }) => { test('it should not create an app if it exists', async ({ worker }) => {
worker.use( worker.use(
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.text('Should not call this API', { status: 400 }) return HttpResponse.text('Should not call this API', { status: 400 })
}), }),
) )
@ -115,7 +112,7 @@ describe('oauth store', () => {
worker, worker,
}) => { }) => {
worker.use( worker.use(
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.text('Should not call this API', { status: 400 }) return HttpResponse.text('Should not call this API', { status: 400 })
}), }),
) )
@ -133,7 +130,7 @@ describe('oauth store', () => {
worker, worker,
}) => { }) => {
worker.use( worker.use(
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.text('Should not call this API', { status: 400 }) return HttpResponse.text('Should not call this API', { status: 400 })
}), }),
) )
@ -173,7 +170,7 @@ describe('oauth store', () => {
test('it should throw if we cannot create an app', async ({ worker }) => { test('it should throw if we cannot create an app', async ({ worker }) => {
worker.use( worker.use(
http.post(`${testServer}/api/v1/apps`, () => { http.post('/api/v1/apps', () => {
return HttpResponse.text('Throttled', { status: 429 }) return HttpResponse.text('Throttled', { status: 429 })
}), }),
) )
@ -186,7 +183,7 @@ describe('oauth store', () => {
worker, worker,
}) => { }) => {
worker.use( worker.use(
http.post(`${testServer}/oauth/token`, () => { http.post('/oauth/token', () => {
return HttpResponse.text('Throttled', { status: 429 }) return HttpResponse.text('Throttled', { status: 429 })
}), }),
) )