79 lines
1.9 KiB
TypeScript
79 lines
1.9 KiB
TypeScript
|
|
import assert from 'node:assert/strict';
|
||
|
|
import { describe, it } from 'node:test';
|
||
|
|
import {
|
||
|
|
SESSION_EXPIRED_MESSAGE,
|
||
|
|
shouldDeferBackendFailToCaller,
|
||
|
|
shouldSuppressErrorMessage
|
||
|
|
} from '../src/service/request/error-message';
|
||
|
|
|
||
|
|
describe('request session expired message handling', () => {
|
||
|
|
it('uses the unified session expired message', () => {
|
||
|
|
assert.equal(SESSION_EXPIRED_MESSAGE, '登录已失效,请重新登录');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('suppresses raw backend errors when the request is marked silent', () => {
|
||
|
|
assert.equal(
|
||
|
|
shouldSuppressErrorMessage({
|
||
|
|
backendErrorCode: '500',
|
||
|
|
suppressErrorMessage: true,
|
||
|
|
logoutCodes: [],
|
||
|
|
modalLogoutCodes: [],
|
||
|
|
expiredTokenCodes: []
|
||
|
|
}),
|
||
|
|
true
|
||
|
|
);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('lets refresh-token callers handle every backend failure silently', () => {
|
||
|
|
assert.equal(
|
||
|
|
shouldDeferBackendFailToCaller({
|
||
|
|
suppressErrorMessage: true,
|
||
|
|
skipTokenRefresh: true
|
||
|
|
}),
|
||
|
|
true
|
||
|
|
);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('suppresses auth lifecycle error codes handled by request flow', () => {
|
||
|
|
assert.equal(
|
||
|
|
shouldSuppressErrorMessage({
|
||
|
|
backendErrorCode: '401',
|
||
|
|
logoutCodes: ['401'],
|
||
|
|
modalLogoutCodes: [],
|
||
|
|
expiredTokenCodes: []
|
||
|
|
}),
|
||
|
|
true
|
||
|
|
);
|
||
|
|
assert.equal(
|
||
|
|
shouldSuppressErrorMessage({
|
||
|
|
backendErrorCode: '7777',
|
||
|
|
logoutCodes: [],
|
||
|
|
modalLogoutCodes: ['7777'],
|
||
|
|
expiredTokenCodes: []
|
||
|
|
}),
|
||
|
|
true
|
||
|
|
);
|
||
|
|
assert.equal(
|
||
|
|
shouldSuppressErrorMessage({
|
||
|
|
backendErrorCode: '1002023000',
|
||
|
|
logoutCodes: [],
|
||
|
|
modalLogoutCodes: [],
|
||
|
|
expiredTokenCodes: ['1002023000']
|
||
|
|
}),
|
||
|
|
true
|
||
|
|
);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('keeps normal backend errors visible', () => {
|
||
|
|
assert.equal(
|
||
|
|
shouldSuppressErrorMessage({
|
||
|
|
backendErrorCode: '500',
|
||
|
|
logoutCodes: ['401'],
|
||
|
|
modalLogoutCodes: ['7777'],
|
||
|
|
expiredTokenCodes: ['1002023000']
|
||
|
|
}),
|
||
|
|
false
|
||
|
|
);
|
||
|
|
});
|
||
|
|
});
|