97 lines
2.4 KiB
TypeScript
97 lines
2.4 KiB
TypeScript
import { expect, test } from 'vitest';
|
|
|
|
import {
|
|
resolvePlatformRecommendRuntimeAuthPlan,
|
|
shouldUsePlatformRecommendRuntimeGuestAuth,
|
|
} from './platformRecommendRuntimeAuthModel';
|
|
|
|
test('uses runtime guest auth for anonymous embedded recommendation runtime', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: true,
|
|
authUserId: null,
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'runtime-guest',
|
|
puzzleRuntimeAuthMode: 'isolated',
|
|
});
|
|
});
|
|
|
|
test('uses background auth for signed-in embedded recommendation runtime', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: true,
|
|
authUserId: 'user-1',
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'background',
|
|
puzzleRuntimeAuthMode: 'default',
|
|
});
|
|
});
|
|
|
|
test('uses background auth when embedded runtime has only a stored access token', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: true,
|
|
authUserId: null,
|
|
hasStoredAccessToken: true,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'background',
|
|
puzzleRuntimeAuthMode: 'default',
|
|
});
|
|
});
|
|
|
|
test('does not alter auth for non-embedded runtime launches by default', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: false,
|
|
authUserId: null,
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'none',
|
|
puzzleRuntimeAuthMode: 'default',
|
|
});
|
|
});
|
|
|
|
test('uses isolated guest auth for anonymous puzzle isolated launch', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: false,
|
|
allowRuntimeGuestAuth: true,
|
|
authUserId: null,
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'runtime-guest',
|
|
puzzleRuntimeAuthMode: 'isolated',
|
|
});
|
|
});
|
|
|
|
test('falls back to default puzzle auth when isolated launch has account auth', () => {
|
|
expect(
|
|
resolvePlatformRecommendRuntimeAuthPlan({
|
|
embedded: false,
|
|
allowRuntimeGuestAuth: true,
|
|
authUserId: 'user-1',
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toEqual({
|
|
requestKind: 'none',
|
|
puzzleRuntimeAuthMode: 'default',
|
|
});
|
|
});
|
|
|
|
test('guest auth decision trims user id before treating account as signed in', () => {
|
|
expect(
|
|
shouldUsePlatformRecommendRuntimeGuestAuth({
|
|
allowRuntimeGuestAuth: true,
|
|
authUserId: ' ',
|
|
hasStoredAccessToken: false,
|
|
}),
|
|
).toBe(true);
|
|
});
|