Combine the choice widget field value unit tests into one parametrized unit test

This commit follows the same pattern as another unit test in this file
and both reduces existing and future code duplication (since the next
commit will extend this test with an additional input).
This commit is contained in:
Tim van der Meij 2020-08-18 22:55:59 +02:00
parent 965d20db2a
commit 3ca037af78
No known key found for this signature in database
GPG Key ID: 8C3FD2925A5F2762

View File

@ -2478,48 +2478,32 @@ describe("annotation", function () {
}, done.fail);
});
it("should handle array field values", function (done) {
const fieldValue = ["Foo", "Bar"];
it("should convert the field value to an array", function (done) {
const inputs = ["Foo", ["Foo", "Bar"]];
const outputs = [["Foo"], ["Foo", "Bar"]];
choiceWidgetDict.set("V", fieldValue);
let promise = Promise.resolve();
for (let i = 0, ii = inputs.length; i < ii; i++) {
promise = promise.then(() => {
choiceWidgetDict.set("V", inputs[i]);
const choiceWidgetRef = Ref.get(968, 0);
const xref = new XRefMock([
{ ref: choiceWidgetRef, data: choiceWidgetDict },
]);
const choiceWidgetRef = Ref.get(968, 0);
const xref = new XRefMock([
{ ref: choiceWidgetRef, data: choiceWidgetDict },
]);
AnnotationFactory.create(
xref,
choiceWidgetRef,
pdfManagerMock,
idFactoryMock
).then(({ data }) => {
expect(data.annotationType).toEqual(AnnotationType.WIDGET);
expect(data.fieldValue).toEqual(fieldValue);
done();
}, done.fail);
});
it("should handle string field values", function (done) {
const fieldValue = "Foo";
choiceWidgetDict.set("V", fieldValue);
const choiceWidgetRef = Ref.get(978, 0);
const xref = new XRefMock([
{ ref: choiceWidgetRef, data: choiceWidgetDict },
]);
AnnotationFactory.create(
xref,
choiceWidgetRef,
pdfManagerMock,
idFactoryMock
).then(({ data }) => {
expect(data.annotationType).toEqual(AnnotationType.WIDGET);
expect(data.fieldValue).toEqual([fieldValue]);
done();
}, done.fail);
return AnnotationFactory.create(
xref,
choiceWidgetRef,
pdfManagerMock,
idFactoryMock
).then(({ data }) => {
expect(data.annotationType).toEqual(AnnotationType.WIDGET);
expect(data.fieldValue).toEqual(outputs[i]);
});
});
}
promise.then(done, done.fail);
});
it("should handle unknown flags", function (done) {