Files
cyh-tk-backend/test/playback-error.e2e-spec.ts
zhxiao1124 4eff4d877e refactor: 完成项目整体目录重构与路径别名配置
1.  重构项目文件结构,统一文件存放位置与命名规则
2.  配置tsconfig路径别名,替换原有相对路径导入
3.  迁移drama-status枚举到dramas.types统一管理
4.  新增全局配置文件与工具类,补充完整注释与文档
5.  修复所有导入路径与依赖引用问题
2026-07-02 19:17:56 +08:00

78 lines
2.1 KiB
TypeScript

import { INestApplication } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { AppModule } from '../src/app/app.module';
import { bootstrapApp } from '../src/bootstrap';
import { loginAdmin } from './test-helpers';
describe('Playback error logs', () => {
let app: INestApplication;
let adminToken: string;
beforeAll(async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
}).compile();
app = moduleRef.createNestApplication();
bootstrapApp(app);
await app.init();
adminToken = await loginAdmin(app);
});
afterAll(async () => {
await app.close();
});
it('accepts playback error reports and exposes them to admin logs', async () => {
const requestId = 'aac95ef4-c546-427d-88c7-25b15b396b91';
const createResponse = await request(app.getHttpServer())
.post('/api/app/v1/logs/playback-errors')
.set('X-Request-Id', requestId)
.send({
requestId,
dramaId: 1,
episodeId: 10,
playUrl: 'https://cdn.example.com/video.mp4',
playerErrorCode: 'MEDIA_DECODE_ERROR',
message: 'Video decode failed',
progressSeconds: 128,
networkType: 'wifi',
device: {
platform: 'ios',
model: 'iPhone',
systemVersion: '17.0',
appVersion: '1.0.0',
},
occurredAt: '2026-06-30T00:00:00.000Z',
})
.expect(201);
expect(createResponse.body).toMatchObject({
code: 0,
data: {
id: expect.any(Number),
requestId,
},
message: 'success',
requestId,
});
const listResponse = await request(app.getHttpServer())
.get('/api/admin/v1/logs/playback-errors')
.set('Authorization', `Bearer ${adminToken}`)
.expect(200);
expect(listResponse.body.data.list).toEqual(
expect.arrayContaining([
expect.objectContaining({
requestId,
playerErrorCode: 'MEDIA_DECODE_ERROR',
progressSeconds: 128,
}),
]),
);
});
});