2021-02-05 18:28:04 +01:00
|
|
|
import Debugger from 'src/Debugger';
|
|
|
|
import Item from 'src/Item';
|
|
|
|
import ItemTransformer from 'src/transformer/ItemTransformer';
|
2021-02-13 11:09:34 +01:00
|
|
|
import TransformerDescriptor from 'src/TransformerDescription';
|
2021-02-05 18:28:04 +01:00
|
|
|
import TransformContext from 'src/transformer/TransformContext';
|
2021-02-13 11:09:34 +01:00
|
|
|
import ItemResult from 'src/ItemResult';
|
2021-02-05 18:28:04 +01:00
|
|
|
|
|
|
|
class TestTransformer extends ItemTransformer {
|
|
|
|
items: Item[];
|
2021-02-13 11:09:34 +01:00
|
|
|
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;
|
|
|
|
}
|
2021-02-13 11:09:34 +01:00
|
|
|
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' })];
|
|
|
|
|
2021-02-13 11:09:34 +01:00
|
|
|
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')}` }));
|
|
|
|
|
2021-02-13 11:09:34 +01:00
|
|
|
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']]);
|
2021-02-13 11:09:34 +01:00
|
|
|
expect(debug.stageResults(0).items).toEqual(parsedItems);
|
|
|
|
expect(debug.stageResults(1).items).toEqual(trans1Items);
|
2021-02-05 18:28:04 +01:00
|
|
|
});
|