mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 13:03:50 +00:00
60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { authType2UsageSource } from '@/service/support/wallet/usage/utils';
|
|
import { AuthUserTypeEnum } from '@fastgpt/global/support/permission/constant';
|
|
import { UsageSourceEnum } from '@fastgpt/global/support/wallet/usage/constants';
|
|
|
|
describe('authType2UsageSource', () => {
|
|
it('should return source if provided', () => {
|
|
const result = authType2UsageSource({
|
|
authType: AuthUserTypeEnum.apikey,
|
|
shareId: 'share123',
|
|
source: UsageSourceEnum.api
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.api);
|
|
});
|
|
|
|
it('should return shareLink if shareId is provided', () => {
|
|
const result = authType2UsageSource({
|
|
authType: AuthUserTypeEnum.apikey,
|
|
shareId: 'share123'
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.shareLink);
|
|
});
|
|
|
|
it('should return api if authType is apikey', () => {
|
|
const result = authType2UsageSource({
|
|
authType: AuthUserTypeEnum.apikey
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.api);
|
|
});
|
|
|
|
it('should return fastgpt as default', () => {
|
|
const result = authType2UsageSource({});
|
|
expect(result).toBe(UsageSourceEnum.fastgpt);
|
|
});
|
|
|
|
it('should return fastgpt for non-apikey authType', () => {
|
|
const result = authType2UsageSource({
|
|
authType: AuthUserTypeEnum.owner
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.fastgpt);
|
|
});
|
|
|
|
it('should prioritize source over shareId and authType', () => {
|
|
const result = authType2UsageSource({
|
|
source: UsageSourceEnum.api,
|
|
shareId: 'share123',
|
|
authType: AuthUserTypeEnum.apikey
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.api);
|
|
});
|
|
|
|
it('should prioritize shareId over authType', () => {
|
|
const result = authType2UsageSource({
|
|
shareId: 'share123',
|
|
authType: AuthUserTypeEnum.apikey
|
|
});
|
|
expect(result).toBe(UsageSourceEnum.shareLink);
|
|
});
|
|
});
|