pdf-to-markdown/core/test/Debugger.test.ts

38 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-02-05 18:28:04 +01:00
import Debugger from 'src/Debugger';
import Item from 'src/Item';
import ItemTransformer from 'src/transformer/ItemTransformer';
import TransformerDescriptor from 'src/TransformerDescription';
2021-02-05 18:28:04 +01:00
import TransformContext from 'src/transformer/TransformContext';
import ItemResult from 'src/ItemResult';
2021-02-05 18:28:04 +01:00
class TestTransformer extends ItemTransformer {
items: Item[];
constructor(name: string, descriptor: TransformerDescriptor, outputSchema: string[], items: Item[]) {
super(name, `Description for ${name}`, descriptor, (incomingSchema) => outputSchema);
2021-02-05 18:28:04 +01:00
this.items = items;
}
transform(_: TransformContext, items: Item[]): ItemResult {
return {
items: this.items,
messages: [],
};
2021-02-05 18:28:04 +01:00
}
}
test('basic debug', async () => {
const parsedSchema = ['A', 'B'];
const parsedItems = [new Item(0, { A: 'a_row1', B: 'b_row1' }), new Item(0, { A: 'a_row2', B: 'b_row2' })];
const trans1Desc = { requireColumns: ['A', 'B'] };
const trans1Schema = ['C'];
2021-02-05 18:28:04 +01:00
const trans1Items = parsedItems.map((item) => item.withData({ C: `c=${item.value('A')}+${item.value('B')}` }));
const transformers = [new TestTransformer('Trans1', trans1Desc, trans1Schema, trans1Items)];
2021-02-05 18:28:04 +01:00
const debug = new Debugger(parsedSchema, parsedItems, { pageViewports: [] }, transformers);
expect(debug.stageNames).toEqual(['Parse Result', 'Trans1']);
expect(debug.stageSchema).toEqual([parsedSchema, ['C']]);
expect(debug.stageResults(0).items).toEqual(parsedItems);
expect(debug.stageResults(1).items).toEqual(trans1Items);
2021-02-05 18:28:04 +01:00
});