Make VC helper fields configurable

Adds KALAMAR_VC_HELPER_FIELDS environment variable and vc_helper_fields
configuration option to add or remove fields from the virtual corpus
builder at runtime.

Syntax: KALAMAR_VC_HELPER_FIELDS=+award:text,-docTitle
  +name:type  adds a field
  -name       removes a field

The result is always sorted alphabetically. Analogous to
KALAMAR_HINT_FOUNDRIES (aa6709c).

Required for DeLiKo@DNB

Change-Id: If9ad570133f78515aa6ed0ef87424c0843e76d9c
diff --git a/t/vc_helper_fields.t b/t/vc_helper_fields.t
new file mode 100644
index 0000000..98afdaf
--- /dev/null
+++ b/t/vc_helper_fields.t
@@ -0,0 +1,41 @@
+use Mojo::Base -strict;
+use Test::More;
+use Test::Mojo;
+
+# Test vc_helper_fields default (empty)
+my $t = Test::Mojo->new('Kalamar');
+$t->get_ok('/')
+  ->status_is(200)
+  ->attr_is('body', 'data-vc-helper-fields', '');
+
+# Test KALAMAR_VC_HELPER_FIELDS environment variable
+$ENV{'KALAMAR_VC_HELPER_FIELDS'} = '+award:text,-docTitle';
+$t = Test::Mojo->new('Kalamar');
+$t->get_ok('/')
+  ->status_is(200)
+  ->attr_is('body', 'data-vc-helper-fields', '+award:text,-docTitle');
+delete $ENV{'KALAMAR_VC_HELPER_FIELDS'};
+
+# Test vc_helper_fields config option
+$t = Test::Mojo->new('Kalamar' => {
+  Kalamar => {
+    vc_helper_fields => ['+award:text', '-docTitle']
+  }
+});
+$t->get_ok('/')
+  ->status_is(200)
+  ->attr_is('body', 'data-vc-helper-fields', '+award:text,-docTitle');
+
+# Test env var takes precedence over config
+$ENV{'KALAMAR_VC_HELPER_FIELDS'} = '-author';
+$t = Test::Mojo->new('Kalamar' => {
+  Kalamar => {
+    vc_helper_fields => ['+award:text', '-docTitle']
+  }
+});
+$t->get_ok('/')
+  ->status_is(200)
+  ->attr_is('body', 'data-vc-helper-fields', '-author');
+delete $ENV{'KALAMAR_VC_HELPER_FIELDS'};
+
+done_testing;