Тест канала в Nest
Строка из запроса иногда приходит с лишними пробелами, и канал должен обрезать её до сохранения. Ошибку легко внести в одну строку преобразования, а заметить её через полный HTTP долго.
Канал регистрируют провайдером,
достают из контейнера и вызывают
transform с тестовым значением.
Vitest сравнивает результат
с ожиданием без поднятия приложения.
Покажем на примере постов:
import { Injectable, PipeTransform } from '@nestjs/common';
@Injectable()
export class TrimPipe implements PipeTransform {
transform(value: string): string {
return value.trim();
}
}
Тест собирает модуль с каналом и проверяет обрезку пробелов:
import { describe, it, expect } from 'vitest';
import { Test } from '@nestjs/testing';
import { TrimPipe } from '../src/trim.pipe.js';
describe('TrimPipe', () => {
it('trims spaces', async () => {
const moduleRef = await Test.createTestingModule({
providers: [TrimPipe],
}).compile();
const pipe = moduleRef.get(TrimPipe);
expect(pipe.transform(' note ')).toBe('note');
});
});
Запуск:
npx vitest run test/trim.pipe.spec.ts
Добавьте канал, который приводит имя работника к верхнему регистру, и проверьте преобразование через тестовый модуль.