| import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' | |
| describe('user api oauth binding urls', () => { | |
| beforeEach(() => { | |
| vi.resetModules() | |
| vi.stubEnv('VITE_API_BASE_URL', 'https://api.example.com/api/v1') | |
| }) | |
| afterEach(() => { | |
| vi.unstubAllEnvs() | |
| }) | |
| it('builds third-party bind urls against the bind start endpoint', async () => { | |
| const { buildOAuthBindingStartURL } = await import('@/api/user') | |
| expect(buildOAuthBindingStartURL('linuxdo', { redirectTo: '/settings/profile' })).toBe( | |
| 'https://api.example.com/api/v1/auth/oauth/linuxdo/bind/start?redirect=%2Fsettings%2Fprofile&intent=bind_current_user' | |
| ) | |
| expect( | |
| buildOAuthBindingStartURL('wechat', { | |
| redirectTo: '/settings/profile', | |
| wechatOAuthSettings: { | |
| wechat_oauth_open_enabled: true, | |
| wechat_oauth_mp_enabled: false, | |
| wechat_oauth_mobile_enabled: false | |
| } | |
| }) | |
| ).toBe( | |
| 'https://api.example.com/api/v1/auth/oauth/wechat/bind/start?redirect=%2Fsettings%2Fprofile&intent=bind_current_user&mode=open' | |
| ) | |
| }) | |
| }) | |