Verified Commit b0044a58 authored by Jules Sagot--Gentil's avatar Jules Sagot--Gentil
Browse files

test(article): classe Writable utilitaire pour récupérer la sortie

parent 61c6787c
Pipeline #469855145 passed with stage
in 55 seconds
import { WritableGetSortie } from './writable';
describe('La classe WritableGetSortie', () => {
const writable = new WritableGetSortie();
beforeEach(() => writable.reset());
it('Doit pouvoir renvoyer son entrée', () => {
const message = 'Récupération des données';
writable.write(message);
expect(writable.getSortie()).toBe(message);
})
it('Doit pouvoir renvoyer la somme de plusieurs entrées', () => {
const messageA = 'Récupération des données';
const messageB = '\nCeci est un second message';
writable.write(messageA);
writable.write(messageB);
expect(writable.getSortie()).toBe(messageA + messageB);
})
})
import { Writable } from 'stream';
/**
* @description Classe utilitaire permettant de récupérer ce qui a été
* écrit sous forme d'une chaîne de caractères à l'aide de la méthode
* getSortie
*/
export class WritableGetSortie extends Writable {
private sortie: string = '';
public _write(chunk: any, callback?: (error: Error | null | undefined) => void): void;
public _write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): void;
public _write(...args: any[]): void {
this.sortie += args[0].toString();
if (args.length == 2 && args[1]) {
args[1]();
}
if (args.length == 3 && args[2]) {
args[2]();
}
}
public getSortie() {
return this.sortie;
}
public reset() {
this.sortie = '';
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment