This commit is contained in:
74
docs/snippets/wasm/plugins/plugin_testing.md
Normal file
74
docs/snippets/wasm/plugins/plugin_testing.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Plugin Testing Pattern
|
||||
|
||||
Test custom plugins to verify they implement required interfaces correctly.
|
||||
|
||||
```typescript title="WASM"
|
||||
import init, { registerValidator, registerPostProcessor } from "kreuzberg-wasm";
|
||||
|
||||
await init();
|
||||
|
||||
// Test fixture: sample extraction result
|
||||
const sampleResult = {
|
||||
text: "Sample extracted text from document",
|
||||
metadata: {
|
||||
mimeType: "application/pdf",
|
||||
source: "test.pdf",
|
||||
pageCount: 1,
|
||||
},
|
||||
};
|
||||
|
||||
// Test post-processor registration
|
||||
function testPostProcessorRegistration() {
|
||||
const processor = {
|
||||
processingStage: () => "post-extraction",
|
||||
process: (result) => result,
|
||||
};
|
||||
|
||||
try {
|
||||
registerPostProcessor(processor);
|
||||
console.log("✓ Post-processor registered successfully");
|
||||
} catch (error) {
|
||||
console.error("✗ Post-processor registration failed:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Test validator registration
|
||||
function testValidatorRegistration() {
|
||||
const validator = {
|
||||
validate: (result) => ({
|
||||
valid: !!result.text,
|
||||
error: result.text ? null : "No text extracted",
|
||||
}),
|
||||
};
|
||||
|
||||
try {
|
||||
registerValidator(validator);
|
||||
console.log("✓ Validator registered successfully");
|
||||
} catch (error) {
|
||||
console.error("✗ Validator registration failed:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Test required methods validation
|
||||
function testInterfaceValidation() {
|
||||
// Missing required method should fail
|
||||
const invalidProcessor = {
|
||||
// Missing processingStage() method
|
||||
process: (result) => result,
|
||||
};
|
||||
|
||||
try {
|
||||
registerPostProcessor(invalidProcessor);
|
||||
console.error("✗ Should have rejected processor with missing methods");
|
||||
} catch (error) {
|
||||
console.log("✓ Correctly rejected invalid processor:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Run tests
|
||||
testPostProcessorRegistration();
|
||||
testValidatorRegistration();
|
||||
testInterfaceValidation();
|
||||
```
|
||||
|
||||
Validate plugin implementations before deploying to production.
|
||||
Reference in New Issue
Block a user