@natlibfi/marc-record-validators-melinda 12.0.0-alpha.1 → 12.0.0-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/.github/workflows/{melinda-node-tests.yml → melinda-node-tests-and-publish.yml} +36 -11
  2. package/dist/access-rights.test.js +1 -1
  3. package/dist/access-rights.test.js.map +1 -1
  4. package/dist/addMissingField337.test.js +1 -1
  5. package/dist/addMissingField337.test.js.map +1 -1
  6. package/dist/addMissingField338.test.js +1 -1
  7. package/dist/addMissingField338.test.js.map +1 -1
  8. package/dist/cyrillux-usemarcon-replacement.test.js +4 -7
  9. package/dist/cyrillux-usemarcon-replacement.test.js.map +2 -2
  10. package/dist/cyrillux.test.js +1 -1
  11. package/dist/cyrillux.test.js.map +1 -1
  12. package/dist/double-commas.test.js +1 -1
  13. package/dist/double-commas.test.js.map +1 -1
  14. package/dist/empty-fields.test.js +1 -1
  15. package/dist/empty-fields.test.js.map +1 -1
  16. package/dist/ending-punctuation-conf.js +6 -4
  17. package/dist/ending-punctuation-conf.js.map +2 -2
  18. package/dist/ending-punctuation.js +88 -18
  19. package/dist/ending-punctuation.js.map +3 -3
  20. package/dist/ending-punctuation.test.js +198 -103
  21. package/dist/ending-punctuation.test.js.map +2 -2
  22. package/dist/field-008-18-34-character-groups.test.js +1 -1
  23. package/dist/field-008-18-34-character-groups.test.js.map +1 -1
  24. package/dist/field-structure.test.js +1 -1
  25. package/dist/field-structure.test.js.map +1 -1
  26. package/dist/index.js +122 -59
  27. package/dist/index.js.map +2 -2
  28. package/dist/indicator-fixes.js +11 -1
  29. package/dist/indicator-fixes.js.map +2 -2
  30. package/dist/isbn-issn.js +8 -5
  31. package/dist/isbn-issn.js.map +2 -2
  32. package/dist/melindaCustomMergeFields.js +1 -1
  33. package/dist/melindaCustomMergeFields.js.map +2 -2
  34. package/dist/merge-fields/counterpartField.js +5 -0
  35. package/dist/merge-fields/counterpartField.js.map +2 -2
  36. package/dist/merge-fields/dataProvenance.js +29 -0
  37. package/dist/merge-fields/dataProvenance.js.map +7 -0
  38. package/dist/merge-fields/index.js +11 -2
  39. package/dist/merge-fields/index.js.map +2 -2
  40. package/dist/merge-fields/mergeField.js +1 -1
  41. package/dist/merge-fields/mergeField.js.map +2 -2
  42. package/dist/merge-fields.test.js +4 -2
  43. package/dist/merge-fields.test.js.map +2 -2
  44. package/dist/mergeField500Lisapainokset.js +1 -1
  45. package/dist/mergeField500Lisapainokset.js.map +2 -2
  46. package/dist/normalizeFieldForComparison.js +24 -0
  47. package/dist/normalizeFieldForComparison.js.map +2 -2
  48. package/dist/punctuation2.js +11 -5
  49. package/dist/punctuation2.js.map +2 -2
  50. package/dist/removeInferiorDataFields.js +2 -1
  51. package/dist/removeInferiorDataFields.js.map +2 -2
  52. package/dist/resolveOrphanedSubfield6s.js +1 -1
  53. package/dist/resolveOrphanedSubfield6s.js.map +2 -2
  54. package/dist/sortSubfields.js +5 -5
  55. package/dist/sortSubfields.js.map +2 -2
  56. package/dist/translate-terms.test.js +12 -2
  57. package/dist/translate-terms.test.js.map +2 -2
  58. package/dist/utils.js +9 -3
  59. package/dist/utils.js.map +2 -2
  60. package/package.json +22 -23
  61. package/src/access-rights.test.js +1 -1
  62. package/src/addMissingField337.test.js +1 -1
  63. package/src/addMissingField338.test.js +1 -1
  64. package/src/cyrillux-usemarcon-replacement.test.js +4 -9
  65. package/src/cyrillux.test.js +1 -1
  66. package/src/double-commas.test.js +1 -1
  67. package/src/empty-fields.test.js +1 -1
  68. package/src/ending-punctuation-conf.js +6 -5
  69. package/src/ending-punctuation.js +115 -24
  70. package/src/ending-punctuation.test.js +187 -104
  71. package/src/field-008-18-34-character-groups.test.js +1 -1
  72. package/src/field-structure.test.js +1 -1
  73. package/src/index.js +132 -59
  74. package/src/indicator-fixes.js +14 -1
  75. package/src/isbn-issn.js +11 -6
  76. package/src/melindaCustomMergeFields.js +1 -1
  77. package/src/merge-fields/counterpartField.js +6 -0
  78. package/src/merge-fields/dataProvenance.js +41 -0
  79. package/src/merge-fields/index.js +11 -2
  80. package/src/merge-fields/mergeField.js +2 -2
  81. package/src/merge-fields.test.js +6 -2
  82. package/src/mergeField500Lisapainokset.js +1 -1
  83. package/src/normalizeFieldForComparison.js +26 -0
  84. package/src/punctuation2.js +14 -5
  85. package/src/removeInferiorDataFields.js +4 -1
  86. package/src/resolveOrphanedSubfield6s.js +1 -1
  87. package/src/sortSubfields.js +7 -5
  88. package/src/translate-terms.test.js +25 -2
  89. package/src/utils.js +19 -3
  90. package/test-fixtures/indicator-fixes/10/expectedResult.json +11 -0
  91. package/test-fixtures/indicator-fixes/10/metadata.json +4 -0
  92. package/test-fixtures/indicator-fixes/10/record.json +11 -0
  93. package/test-fixtures/merge-fields/f05/expectedResult.json +24 -0
  94. package/test-fixtures/merge-fields/f05/metadata.json +6 -0
  95. package/test-fixtures/merge-fields/f05/record.json +30 -0
  96. package/test-fixtures/remove-inferior-datafields/f16/expectedResult.json +12 -0
  97. package/test-fixtures/remove-inferior-datafields/f16/metadata.json +5 -0
  98. package/test-fixtures/remove-inferior-datafields/f16/record.json +14 -0
  99. package/test-fixtures/translate-terms-data.js +42 -0
  100. package/src/melindaCustomMergeFields.json +0 -5120
@@ -17,10 +17,18 @@ describe('ending-punctuation', () => {
17
17
  ind1: ' ',
18
18
  ind2: ' ',
19
19
  subfields: [
20
- {code: 'a', value: 'Elämäni ja tutkimusretkeni / '},
20
+ {code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
21
21
  {code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola.'},
22
22
  {code: '6', value: 'FOO'}
23
23
  ]
24
+ }, { // Hackily putting 2nd 245 here
25
+ tag: '245',
26
+ ind1: '0',
27
+ ind2: '4',
28
+ subfields: [
29
+ {code: 'a', value: 'The Disaster /'},
30
+ {code: 'c', value: '(J.L.).'}
31
+ ]
24
32
  }, {
25
33
  tag: '337', // Range 336-338
26
34
  ind1: ' ',
@@ -34,7 +42,18 @@ describe('ending-punctuation', () => {
34
42
  tag: '500', // Range 500-509
35
43
  ind1: ' ',
36
44
  ind2: ' ',
37
- subfields: [{code: 'a', value: 'FOO (Bar)'}]
45
+ subfields: [{code: 'a', value: 'FOO (Bar).'}]
46
+ }, {
47
+ tag: '500', // Range 500-509
48
+ ind1: ' ',
49
+ ind2: ' ',
50
+ subfields: [{code: 'a', value: '"Lorum ipsum."'}]
51
+ },
52
+ {
53
+ tag: '500', // Range 500-509
54
+ ind1: ' ',
55
+ ind2: ' ',
56
+ subfields: [{code: 'a', value: 'Foo "Bar".'}]
38
57
  }
39
58
  ]
40
59
  });
@@ -47,9 +66,17 @@ describe('ending-punctuation', () => {
47
66
  ind1: ' ',
48
67
  ind2: ' ',
49
68
  subfields: [
50
- {code: 'a', value: 'Elämäni ja tutkimusretkeni / '},
69
+ {code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
51
70
  {code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola'},
52
- {code: '6', value: 'FOO'}
71
+ {code: '6', value: 'FOO'} // NV: not changing this now, but this is wrong: $6 is *always* the first subfield. Also , the value is not valid for $6...
72
+ ]
73
+ }, { // Hackily putting 2nd 245 here
74
+ tag: '245',
75
+ ind1: '0',
76
+ ind2: '4',
77
+ subfields: [
78
+ {code: 'a', value: 'The Disaster /'},
79
+ {code: 'c', value: '(J.L.)'}
53
80
  ]
54
81
  }, {
55
82
  tag: '337',
@@ -57,14 +84,25 @@ describe('ending-punctuation', () => {
57
84
  ind2: ' ',
58
85
  subfields: [
59
86
  {code: 'a', value: 'käytettävissä ilman laitetta'},
60
- {code: 'b', value: 'n.'}, // This can be abbreviation -> does not generate error
87
+ {code: 'b', value: 'n.'}, // This can be abbreviation -> does not generate error (NV: huh?!?)
61
88
  {code: '2', value: 'rdamedia'}
62
89
  ]
63
90
  }, {
64
91
  tag: '500',
65
92
  ind1: ' ',
66
93
  ind2: ' ',
67
- subfields: [{code: 'a', value: 'FOO (Bar).'}]
94
+ subfields: [{code: 'a', value: 'FOO (Bar)'}]
95
+ }, {
96
+ tag: '500', // Range 500-509
97
+ ind1: ' ',
98
+ ind2: ' ',
99
+ subfields: [{code: 'a', value: '"Lorum ipsum.".'}]
100
+ },
101
+ {
102
+ tag: '500', // Range 500-509
103
+ ind1: ' ',
104
+ ind2: ' ',
105
+ subfields: [{code: 'a', value: 'Foo "Bar"'}]
68
106
  }
69
107
  ]
70
108
  });
@@ -76,24 +114,43 @@ describe('ending-punctuation', () => {
76
114
  ind1: ' ',
77
115
  ind2: ' ',
78
116
  subfields: [
79
- {code: 'a', value: 'Elämäni ja tutkimusretkeni / '},
117
+ {code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
80
118
  {code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola'},
81
119
  {code: '6', value: 'FOO'}
82
120
  ]
121
+ }, { // Hackily putting 2nd 245 here
122
+ tag: '245',
123
+ ind1: '0',
124
+ ind2: '4',
125
+ subfields: [
126
+ {code: 'a', value: 'The Disaster /'},
127
+ {code: 'c', value: '(J.L.)'}
128
+ ]
83
129
  }, {
84
130
  tag: '337',
85
131
  ind1: ' ',
86
132
  ind2: ' ',
87
133
  subfields: [
88
134
  {code: 'a', value: 'käytettävissä ilman laitetta'},
89
- {code: 'b', value: 'n'}, // Dot removed from possible abbreviation as it cannot be removed in fixing
135
+ {code: 'b', value: 'n'}, // Dot removed from possible abbreviation as it cannot be removed in fixing (NV: huh?)
90
136
  {code: '2', value: 'rdamedia'}
91
137
  ]
92
138
  }, {
93
139
  tag: '500',
94
140
  ind1: ' ',
95
141
  ind2: ' ',
96
- subfields: [{code: 'a', value: 'FOO (Bar).'}]
142
+ subfields: [{code: 'a', value: 'FOO (Bar)'}]
143
+ }, {
144
+ tag: '500', // Range 500-509
145
+ ind1: ' ',
146
+ ind2: ' ',
147
+ subfields: [{code: 'a', value: '"Lorum ipsum.".'}]
148
+ },
149
+ {
150
+ tag: '500', // Range 500-509
151
+ ind1: ' ',
152
+ ind2: ' ',
153
+ subfields: [{code: 'a', value: 'Foo "Bar"'}]
97
154
  }
98
155
  ]
99
156
  });
@@ -101,6 +158,7 @@ describe('ending-punctuation', () => {
101
158
  it('Finds the record valid', async () => {
102
159
  const validator = await validatorFactory();
103
160
  const result = await validator.validate(recordValid);
161
+ //console.info(JSON.stringify(result));
104
162
  assert.equal(result.valid, true);
105
163
  });
106
164
 
@@ -108,7 +166,7 @@ describe('ending-punctuation', () => {
108
166
  const validator = await validatorFactory();
109
167
  const result = await validator.validate(recordInvalid);
110
168
  assert.deepEqual(result, {
111
- message: ['Field 245 has invalid ending punctuation', 'Field 500 has invalid ending punctuation'],
169
+ message: ['Field 245 requires ending punctuation, ends in \'a\'', 'Field 245 requires ending punctuation, ends in \')\'', 'Field 500 requires ending punctuation, ends in \')\'', 'Field 500 has an extra dot in \'.".\'', 'Field 500 requires ending punctuation, ends in \'"\''],
112
170
  valid: false
113
171
  });
114
172
  });
@@ -116,12 +174,13 @@ describe('ending-punctuation', () => {
116
174
  it('Repairs the invalid record', async () => {
117
175
  const validator = await validatorFactory();
118
176
  const result = await validator.fix(recordBroken);
119
- assert.equal(recordBroken.equalsTo(recordValid), true);
177
+
120
178
  assert.deepEqual(result, {
121
- message: ['Field 245 has invalid ending punctuation', 'Field 500 has invalid ending punctuation'],
122
- fix: ['Field 245 - Added punctuation to $c', 'Field 500 - Removed double punctuation from $a'],
179
+ message: ['Field 245 requires ending punctuation, ends in \'a\'', 'Field 245 requires ending punctuation, ends in \')\'', 'Field 500 requires ending punctuation, ends in \')\'', 'Field 500 has an extra dot in \'.".\'', 'Field 500 requires ending punctuation, ends in \'"\''],
180
+ fix: ['Field 245 - Added punctuation to $c', 'Field 245 - Added punctuation to $c', 'Field 500 - Added punctuation to $a', 'Field 500 - Removed \'.\' after \'."\'', 'Field 500 - Added punctuation to $a'],
123
181
  valid: false
124
182
  });
183
+ assert.equal(recordBroken.equalsTo(recordValid), true);
125
184
  });
126
185
  });
127
186
 
@@ -201,7 +260,7 @@ describe('ending-punctuation', () => {
201
260
  const validator = await validatorFactory();
202
261
  const result = await validator.validate(recordInvalid);
203
262
  assert.deepEqual(result, {
204
- message: ['Field 036 has invalid ending punctuation'],
263
+ message: ['Field 036 requires ending punctuation, ends in \'e\''],
205
264
  valid: false
206
265
  });
207
266
  });
@@ -210,7 +269,7 @@ describe('ending-punctuation', () => {
210
269
  const validator = await validatorFactory();
211
270
  const result = await validator.validate(recordInvalidOnlyA);
212
271
  assert.deepEqual(result, {
213
- message: ['Field 036 has invalid ending punctuation'],
272
+ message: ['Field 036 has unwanted ending punctuation \'.\''],
214
273
  valid: false
215
274
  });
216
275
  });
@@ -221,7 +280,7 @@ describe('ending-punctuation', () => {
221
280
  const result = await validator.fix(recordInvalid);
222
281
  assert.equal(recordInvalid.equalsTo(recordValid), true);
223
282
  assert.deepEqual(result, {
224
- message: ['Field 036 has invalid ending punctuation'],
283
+ message: ['Field 036 requires ending punctuation, ends in \'e\''],
225
284
  fix: ['Field 036 - Added punctuation to $b'],
226
285
  valid: false
227
286
  });
@@ -232,7 +291,7 @@ describe('ending-punctuation', () => {
232
291
  const result = await validator.fix(recordInvalidOnlyA);
233
292
  assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
234
293
  assert.deepEqual(result, {
235
- message: ['Field 036 has invalid ending punctuation'],
294
+ message: ['Field 036 has unwanted ending punctuation \'.\''],
236
295
  fix: ['Field 036 - Removed punctuation from $a'],
237
296
  valid: false
238
297
  });
@@ -385,7 +444,7 @@ describe('ending-punctuation', () => {
385
444
  const validator = await validatorFactory();
386
445
  const result = await validator.validate(recordInvalidOnlyAMissingA);
387
446
  assert.deepEqual(result, {
388
- message: ['Field 242 has invalid ending punctuation'],
447
+ message: ['Field 242 requires ending punctuation, ends in \'t\''],
389
448
  valid: false
390
449
  });
391
450
  });
@@ -394,7 +453,7 @@ describe('ending-punctuation', () => {
394
453
  const validator = await validatorFactory();
395
454
  const result = await validator.validate(recordInvalidOnlyAPuncY);
396
455
  assert.deepEqual(result, {
397
- message: ['Field 242 has invalid ending punctuation'],
456
+ message: ['Field 242 has unwanted ending punctuation \'.\''],
398
457
  valid: false
399
458
  });
400
459
  });
@@ -403,7 +462,7 @@ describe('ending-punctuation', () => {
403
462
  const validator = await validatorFactory();
404
463
  const result = await validator.validate(recordInvalidOnlyAMissingAPuncY);
405
464
  assert.deepEqual(result, {
406
- message: ['Field 242 has invalid ending punctuation', 'Field 242 has invalid ending punctuation'],
465
+ message: ['Field 242 has unwanted ending punctuation \'.\'', 'Field 242 requires ending punctuation, ends in \'t\''],
407
466
  valid: false
408
467
  });
409
468
  });
@@ -412,7 +471,7 @@ describe('ending-punctuation', () => {
412
471
  const validator = await validatorFactory();
413
472
  const result = await validator.validate(recordValidMultipleMissingP);
414
473
  assert.deepEqual(result, {
415
- message: ['Field 242 has invalid ending punctuation'],
474
+ message: ['Field 242 requires ending punctuation, ends in \'y\''],
416
475
  valid: false
417
476
  });
418
477
  });
@@ -421,7 +480,7 @@ describe('ending-punctuation', () => {
421
480
  const validator = await validatorFactory();
422
481
  const result = await validator.validate(recordValidWithoutYMissingA);
423
482
  assert.deepEqual(result, {
424
- message: ['Field 242 has invalid ending punctuation'],
483
+ message: ['Field 242 requires ending punctuation, ends in \'t\''],
425
484
  valid: false
426
485
  });
427
486
  });
@@ -432,7 +491,7 @@ describe('ending-punctuation', () => {
432
491
  const result = await validator.fix(recordInvalidOnlyAMissingA);
433
492
  assert.equal(recordInvalidOnlyAMissingA.equalsTo(recordValidOnlyA), true);
434
493
  assert.deepEqual(result, {
435
- message: ['Field 242 has invalid ending punctuation'],
494
+ message: ['Field 242 requires ending punctuation, ends in \'t\''],
436
495
  fix: ['Field 242 - Added punctuation to $a'],
437
496
  valid: false
438
497
  });
@@ -443,7 +502,7 @@ describe('ending-punctuation', () => {
443
502
  const result = await validator.fix(recordInvalidOnlyAPuncY);
444
503
  assert.equal(recordInvalidOnlyAPuncY.equalsTo(recordValidOnlyA), true);
445
504
  assert.deepEqual(result, {
446
- message: ['Field 242 has invalid ending punctuation'],
505
+ message: ['Field 242 has unwanted ending punctuation \'.\''],
447
506
  fix: ['Field 242 - Removed punctuation from $y'],
448
507
  valid: false
449
508
  });
@@ -454,7 +513,7 @@ describe('ending-punctuation', () => {
454
513
  const result = await validator.fix(recordInvalidOnlyAMissingAPuncY);
455
514
  assert.equal(recordInvalidOnlyAMissingAPuncY.equalsTo(recordValidOnlyA), true);
456
515
  assert.deepEqual(result, {
457
- message: ['Field 242 has invalid ending punctuation', 'Field 242 has invalid ending punctuation'],
516
+ message: ['Field 242 has unwanted ending punctuation \'.\'', 'Field 242 requires ending punctuation, ends in \'t\''],
458
517
  fix: ['Field 242 - Removed punctuation from $y', 'Field 242 - Added punctuation to $a'],
459
518
  valid: false
460
519
  });
@@ -465,7 +524,7 @@ describe('ending-punctuation', () => {
465
524
  const result = await validator.fix(recordValidMultipleMissingP);
466
525
  assert.equal(recordValidMultipleMissingP.equalsTo(recordValidMultiple), true);
467
526
  assert.deepEqual(result, {
468
- message: ['Field 242 has invalid ending punctuation'],
527
+ message: ['Field 242 requires ending punctuation, ends in \'y\''],
469
528
  fix: ['Field 242 - Added punctuation to $p'],
470
529
  valid: false
471
530
  });
@@ -476,7 +535,7 @@ describe('ending-punctuation', () => {
476
535
  const result = await validator.fix(recordValidWithoutYMissingA);
477
536
  assert.equal(recordValidWithoutYMissingA.equalsTo(recordValidWithoutY), true);
478
537
  assert.deepEqual(result, {
479
- message: ['Field 242 has invalid ending punctuation'],
538
+ message: ['Field 242 requires ending punctuation, ends in \'t\''],
480
539
  fix: ['Field 242 - Added punctuation to $a'],
481
540
  valid: false
482
541
  });
@@ -592,7 +651,7 @@ describe('ending-punctuation', () => {
592
651
  const validator = await validatorFactory();
593
652
  const result = await validator.validate(recordInvalidEndC);
594
653
  assert.deepEqual(result, {
595
- message: ['Field 260 has invalid ending punctuation'],
654
+ message: ['Field 260 requires ending punctuation, ends in \'2\''],
596
655
  valid: false
597
656
  });
598
657
  });
@@ -601,7 +660,7 @@ describe('ending-punctuation', () => {
601
660
  const validator = await validatorFactory();
602
661
  const result = await validator.validate(recordInvalidEndGDouble);
603
662
  assert.deepEqual(result, {
604
- message: ['Field 260 has invalid ending punctuation'],
663
+ message: ['Field 260 has an extra dot after \')\''],
605
664
  valid: false
606
665
  });
607
666
  });
@@ -612,7 +671,7 @@ describe('ending-punctuation', () => {
612
671
  const result = await validator.fix(recordInvalidEndC);
613
672
  assert.equal(recordInvalidEndC.equalsTo(recordValidEndC), true);
614
673
  assert.deepEqual(result, {
615
- message: ['Field 260 has invalid ending punctuation'],
674
+ message: ['Field 260 requires ending punctuation, ends in \'2\''],
616
675
  fix: ['Field 260 - Added punctuation to $c'],
617
676
  valid: false
618
677
  });
@@ -623,8 +682,8 @@ describe('ending-punctuation', () => {
623
682
  const result = await validator.fix(recordInvalidEndGDouble);
624
683
  assert.equal(recordInvalidEndGDouble.equalsTo(recordValidEndG), true);
625
684
  assert.deepEqual(result, {
626
- message: ['Field 260 has invalid ending punctuation'],
627
- fix: ['Field 260 - Removed double punctuation from $g'],
685
+ message: ['Field 260 has an extra dot after \')\''],
686
+ fix: ['Field 260 - Removed dot after punctuation from $g'],
628
687
  valid: false
629
688
  });
630
689
  });
@@ -767,7 +826,7 @@ describe('ending-punctuation', () => {
767
826
  const validator = await validatorFactory();
768
827
  const result = await validator.validate(recordInvalidInd2v1);
769
828
  assert.deepEqual(result, {
770
- message: ['Field 264 has invalid ending punctuation'],
829
+ message: ['Field 264 requires ending punctuation, ends in \'6\''],
771
830
  valid: false
772
831
  });
773
832
  });
@@ -776,7 +835,7 @@ describe('ending-punctuation', () => {
776
835
  const validator = await validatorFactory();
777
836
  const result = await validator.validate(recordInvalidCopyrightCExtra);
778
837
  assert.deepEqual(result, {
779
- message: ['Field 264 has invalid ending punctuation'],
838
+ message: ['Field 264 has unwanted ending punctuation \'.\''],
780
839
  valid: false
781
840
  });
782
841
  });
@@ -787,7 +846,7 @@ describe('ending-punctuation', () => {
787
846
  const result = await validator.fix(recordInvalidInd2v1);
788
847
  assert.equal(recordInvalidInd2v1.equalsTo(recordValidInd2v1), true);
789
848
  assert.deepEqual(result, {
790
- message: ['Field 264 has invalid ending punctuation'],
849
+ message: ['Field 264 requires ending punctuation, ends in \'6\''],
791
850
  fix: ['Field 264 - Added punctuation to $c'],
792
851
  valid: false
793
852
  });
@@ -798,7 +857,7 @@ describe('ending-punctuation', () => {
798
857
  const result = await validator.fix(recordInvalidCopyrightCExtra);
799
858
  assert.equal(recordInvalidCopyrightCExtra.equalsTo(recordValidCopyright), true);
800
859
  assert.deepEqual(result, {
801
- message: ['Field 264 has invalid ending punctuation'],
860
+ message: ['Field 264 has unwanted ending punctuation \'.\''],
802
861
  fix: ['Field 264 - Removed punctuation from $c'],
803
862
  valid: false
804
863
  });
@@ -998,7 +1057,7 @@ describe('ending-punctuation', () => {
998
1057
  const validator = await validatorFactory();
999
1058
  const result = await validator.validate(recordInvalidA);
1000
1059
  assert.deepEqual(result, {
1001
- message: ['Field 340 has invalid ending punctuation'],
1060
+ message: ['Field 340 requires ending punctuation, ends in \'e\''],
1002
1061
  valid: false
1003
1062
  });
1004
1063
  });
@@ -1007,7 +1066,7 @@ describe('ending-punctuation', () => {
1007
1066
  const validator = await validatorFactory();
1008
1067
  const result = await validator.validate(recordInvalidAMissingB);
1009
1068
  assert.deepEqual(result, {
1010
- message: ['Field 340 has invalid ending punctuation'],
1069
+ message: ['Field 340 requires ending punctuation, ends in \'t\''],
1011
1070
  valid: false
1012
1071
  });
1013
1072
  });
@@ -1016,7 +1075,7 @@ describe('ending-punctuation', () => {
1016
1075
  const validator = await validatorFactory();
1017
1076
  const result = await validator.validate(recordInvalidABMissing);
1018
1077
  assert.deepEqual(result, {
1019
- message: ['Field 340 has invalid ending punctuation'],
1078
+ message: ['Field 340 requires ending punctuation, ends in \'m\''],
1020
1079
  valid: false
1021
1080
  });
1022
1081
  });
@@ -1025,7 +1084,7 @@ describe('ending-punctuation', () => {
1025
1084
  const validator = await validatorFactory();
1026
1085
  const result = await validator.validate(recordInvalidDDMissing);
1027
1086
  assert.deepEqual(result, {
1028
- message: ['Field 340 has invalid ending punctuation'],
1087
+ message: ['Field 340 requires ending punctuation, ends in \'d\''],
1029
1088
  valid: false
1030
1089
  });
1031
1090
  });
@@ -1034,7 +1093,7 @@ describe('ending-punctuation', () => {
1034
1093
  const validator = await validatorFactory();
1035
1094
  const result = await validator.validate(recordInvalidComplexDMissing);
1036
1095
  assert.deepEqual(result, {
1037
- message: ['Field 340 has invalid ending punctuation'],
1096
+ message: ['Field 340 requires ending punctuation, ends in \'e\''],
1038
1097
  valid: false
1039
1098
  });
1040
1099
  });
@@ -1045,7 +1104,7 @@ describe('ending-punctuation', () => {
1045
1104
  const result = await validator.fix(recordInvalidA);
1046
1105
  assert.equal(recordInvalidA.equalsTo(recordInvalidA), true);
1047
1106
  assert.deepEqual(result, {
1048
- message: ['Field 340 has invalid ending punctuation'],
1107
+ message: ['Field 340 requires ending punctuation, ends in \'e\''],
1049
1108
  fix: ['Field 340 - Added punctuation to $a'],
1050
1109
  valid: false
1051
1110
  });
@@ -1056,7 +1115,7 @@ describe('ending-punctuation', () => {
1056
1115
  const result = await validator.fix(recordInvalidAMissingB);
1057
1116
  assert.equal(recordInvalidAMissingB.equalsTo(recordValidAB), true);
1058
1117
  assert.deepEqual(result, {
1059
- message: ['Field 340 has invalid ending punctuation'],
1118
+ message: ['Field 340 requires ending punctuation, ends in \'t\''],
1060
1119
  fix: ['Field 340 - Added punctuation to $a'],
1061
1120
  valid: false
1062
1121
  });
@@ -1067,7 +1126,7 @@ describe('ending-punctuation', () => {
1067
1126
  const result = await validator.fix(recordInvalidABMissing);
1068
1127
  assert.equal(recordInvalidABMissing.equalsTo(recordValidAB), true);
1069
1128
  assert.deepEqual(result, {
1070
- message: ['Field 340 has invalid ending punctuation'],
1129
+ message: ['Field 340 requires ending punctuation, ends in \'m\''],
1071
1130
  fix: ['Field 340 - Added punctuation to $b'],
1072
1131
  valid: false
1073
1132
  });
@@ -1078,7 +1137,7 @@ describe('ending-punctuation', () => {
1078
1137
  const result = await validator.fix(recordInvalidDDMissing);
1079
1138
  assert.equal(recordInvalidDDMissing.equalsTo(recordValidDD), true);
1080
1139
  assert.deepEqual(result, {
1081
- message: ['Field 340 has invalid ending punctuation'],
1140
+ message: ['Field 340 requires ending punctuation, ends in \'d\''],
1082
1141
  fix: ['Field 340 - Added punctuation to $d'],
1083
1142
  valid: false
1084
1143
  });
@@ -1089,7 +1148,7 @@ describe('ending-punctuation', () => {
1089
1148
  const result = await validator.fix(recordInvalidComplexDMissing);
1090
1149
  assert.equal(recordInvalidComplexDMissing.equalsTo(recordInvalidComplexDMissing), true);
1091
1150
  assert.deepEqual(result, {
1092
- message: ['Field 340 has invalid ending punctuation'],
1151
+ message: ['Field 340 requires ending punctuation, ends in \'e\''],
1093
1152
  fix: ['Field 340 - Added punctuation to $d'],
1094
1153
  valid: false
1095
1154
  });
@@ -1191,7 +1250,7 @@ describe('ending-punctuation', () => {
1191
1250
  const validator = await validatorFactory();
1192
1251
  const result = await validator.validate(recordInvalid);
1193
1252
  assert.deepEqual(result, {
1194
- message: ['Field 520 has invalid ending punctuation'],
1253
+ message: ['Field 520 requires ending punctuation, ends in \'ö\''],
1195
1254
  valid: false
1196
1255
  });
1197
1256
  });
@@ -1200,7 +1259,7 @@ describe('ending-punctuation', () => {
1200
1259
  const validator = await validatorFactory();
1201
1260
  const result = await validator.validate(recordInvalidWithU);
1202
1261
  assert.deepEqual(result, {
1203
- message: ['Field 520 has invalid ending punctuation'],
1262
+ message: ['Field 520 requires ending punctuation, ends in \'i\''],
1204
1263
  valid: false
1205
1264
  });
1206
1265
  });
@@ -1211,7 +1270,7 @@ describe('ending-punctuation', () => {
1211
1270
  const result = await validator.fix(recordInvalid);
1212
1271
  assert.equal(recordInvalid.equalsTo(recordValid), true);
1213
1272
  assert.deepEqual(result, {
1214
- message: ['Field 520 has invalid ending punctuation'],
1273
+ message: ['Field 520 requires ending punctuation, ends in \'ö\''],
1215
1274
  fix: ['Field 520 - Added punctuation to $a'],
1216
1275
  valid: false
1217
1276
  });
@@ -1222,7 +1281,7 @@ describe('ending-punctuation', () => {
1222
1281
  const result = await validator.fix(recordInvalidWithU);
1223
1282
  assert.equal(recordInvalidWithU.equalsTo(recordValidWithU), true);
1224
1283
  assert.deepEqual(result, {
1225
- message: ['Field 520 has invalid ending punctuation'],
1284
+ message: ['Field 520 requires ending punctuation, ends in \'i\''],
1226
1285
  fix: ['Field 520 - Added punctuation to $a'],
1227
1286
  valid: false
1228
1287
  });
@@ -1345,7 +1404,7 @@ describe('ending-punctuation', () => {
1345
1404
  const validator = await validatorFactory();
1346
1405
  const result = await validator.validate(recordInvalidMissingI);
1347
1406
  assert.deepEqual(result, {
1348
- message: ['Field 538 has invalid ending punctuation'],
1407
+ message: ['Field 538 requires ending punctuation, ends in \'s\''],
1349
1408
  valid: false
1350
1409
  });
1351
1410
  });
@@ -1354,7 +1413,7 @@ describe('ending-punctuation', () => {
1354
1413
  const validator = await validatorFactory();
1355
1414
  const result = await validator.validate(recordInvalidI);
1356
1415
  assert.deepEqual(result, {
1357
- message: ['Field 538 has invalid ending punctuation'],
1416
+ message: ['Field 538 requires ending punctuation, ends in \':\''],
1358
1417
  valid: false
1359
1418
  });
1360
1419
  });
@@ -1363,7 +1422,7 @@ describe('ending-punctuation', () => {
1363
1422
  const validator = await validatorFactory();
1364
1423
  const result = await validator.validate(recordInvalidOnlyA);
1365
1424
  assert.deepEqual(result, {
1366
- message: ['Field 538 has invalid ending punctuation'],
1425
+ message: ['Field 538 requires ending punctuation, ends in \'e\''],
1367
1426
  valid: false
1368
1427
  });
1369
1428
  });
@@ -1374,7 +1433,7 @@ describe('ending-punctuation', () => {
1374
1433
  const result = await validator.fix(recordInvalidMissingI);
1375
1434
  assert.equal(recordInvalidMissingI.equalsTo(recordValid), true);
1376
1435
  assert.deepEqual(result, {
1377
- message: ['Field 538 has invalid ending punctuation'],
1436
+ message: ['Field 538 requires ending punctuation, ends in \'s\''],
1378
1437
  fix: ['Field 538 - Added punctuation to $i'],
1379
1438
  valid: false
1380
1439
  });
@@ -1385,7 +1444,7 @@ describe('ending-punctuation', () => {
1385
1444
  const result = await validator.fix(recordInvalidOnlyA);
1386
1445
  assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
1387
1446
  assert.deepEqual(result, {
1388
- message: ['Field 538 has invalid ending punctuation'],
1447
+ message: ['Field 538 requires ending punctuation, ends in \'e\''],
1389
1448
  fix: ['Field 538 - Added punctuation to $a'],
1390
1449
  valid: false
1391
1450
  });
@@ -1467,7 +1526,7 @@ describe('ending-punctuation', () => {
1467
1526
  const validator = await validatorFactory();
1468
1527
  const result = await validator.validate(recordInvalid);
1469
1528
  assert.deepEqual(result, {
1470
- message: ['Field 567 has invalid ending punctuation'],
1529
+ message: ['Field 567 requires ending punctuation, ends in \'s\''],
1471
1530
  valid: false
1472
1531
  });
1473
1532
  });
@@ -1476,7 +1535,7 @@ describe('ending-punctuation', () => {
1476
1535
  const validator = await validatorFactory();
1477
1536
  const result = await validator.validate(recordInvalidWithoutA);
1478
1537
  assert.deepEqual(result, {
1479
- message: ['Field 567 has invalid ending punctuation'],
1538
+ message: ['Field 567 has unwanted ending punctuation \'.\''],
1480
1539
  valid: false
1481
1540
  });
1482
1541
  });
@@ -1487,7 +1546,7 @@ describe('ending-punctuation', () => {
1487
1546
  const result = await validator.fix(recordInvalid);
1488
1547
  assert.equal(recordInvalid.equalsTo(recordValid), true);
1489
1548
  assert.deepEqual(result, {
1490
- message: ['Field 567 has invalid ending punctuation'],
1549
+ message: ['Field 567 requires ending punctuation, ends in \'s\''],
1491
1550
  fix: ['Field 567 - Added punctuation to $a'],
1492
1551
  valid: false
1493
1552
  });
@@ -1498,7 +1557,7 @@ describe('ending-punctuation', () => {
1498
1557
  const result = await validator.fix(recordInvalidWithoutA);
1499
1558
  assert.equal(recordInvalidWithoutA.equalsTo(recordValidWithoutA), true);
1500
1559
  assert.deepEqual(result, {
1501
- message: ['Field 567 has invalid ending punctuation'],
1560
+ message: ['Field 567 has unwanted ending punctuation \'.\''],
1502
1561
  fix: ['Field 567 - Removed punctuation from $b'],
1503
1562
  valid: false
1504
1563
  });
@@ -1526,7 +1585,7 @@ describe('ending-punctuation', () => {
1526
1585
  ]
1527
1586
  });
1528
1587
 
1529
- const recordVali648dFinNo = new MarcRecord({
1588
+ const recordValid648FinNo = new MarcRecord({
1530
1589
  leader: '',
1531
1590
  fields: [
1532
1591
  {
@@ -1537,6 +1596,16 @@ describe('ending-punctuation', () => {
1537
1596
  {code: 'a', value: '1900-luku'},
1538
1597
  {code: '2', value: 'yso/swe'}
1539
1598
  ]
1599
+ },
1600
+ { // Exception: term ending in dot:
1601
+ tag : '648',
1602
+ ind1: ' ',
1603
+ ind2: '7',
1604
+ subfields: [
1605
+ {code: 'a', value: '1200-luku eaa.'},
1606
+ {code: '2', value: 'yso/fin'},
1607
+ {code: '0', value: 'http://www.yso.fi/onto/yso/p1129911200'}
1608
+ ]
1540
1609
  }
1541
1610
  ]
1542
1611
  });
@@ -1609,7 +1678,7 @@ describe('ending-punctuation', () => {
1609
1678
 
1610
1679
  it('Finds record valid - 648 Finnish, without punc', async () => {
1611
1680
  const validator = await validatorFactory();
1612
- const result = await validator.validate(recordVali648dFinNo);
1681
+ const result = await validator.validate(recordValid648FinNo);
1613
1682
  assert.equal(result.valid, true);
1614
1683
  });
1615
1684
 
@@ -1654,7 +1723,7 @@ describe('ending-punctuation', () => {
1654
1723
  ]
1655
1724
  });
1656
1725
 
1657
- const recordInvali648dFinYes = new MarcRecord({
1726
+ const recordInvalid648FinYes = new MarcRecord({
1658
1727
  leader: '',
1659
1728
  fields: [
1660
1729
  {
@@ -1665,6 +1734,15 @@ describe('ending-punctuation', () => {
1665
1734
  {code: 'a', value: '1900-luku.'},
1666
1735
  {code: '2', value: 'yso/swe'}
1667
1736
  ]
1737
+ }, { // Exception:
1738
+ tag: '648',
1739
+ ind1: ' ',
1740
+ ind2: '7',
1741
+ subfields: [
1742
+ {code: 'a', value: '1200-luku eaa'},
1743
+ {code: '2', value: 'yso/fin'},
1744
+ {code: '0', value: 'http://www.yso.fi/onto/yso/p1129911200'}
1745
+ ]
1668
1746
  }
1669
1747
  ]
1670
1748
  });
@@ -1733,16 +1811,16 @@ describe('ending-punctuation', () => {
1733
1811
  const validator = await validatorFactory();
1734
1812
  const result = await validator.validate(recordInvalid647FastEndPunc);
1735
1813
  assert.deepEqual(result, {
1736
- message: ['Field 647 has invalid ending punctuation'],
1814
+ message: ['Field 647 has an extra dot after \')\''],
1737
1815
  valid: false
1738
1816
  });
1739
1817
  });
1740
1818
 
1741
1819
  it('Finds record invalid - 648 Finnish, with punc', async () => {
1742
1820
  const validator = await validatorFactory();
1743
- const result = await validator.validate(recordInvali648dFinYes);
1821
+ const result = await validator.validate(recordInvalid648FinYes);
1744
1822
  assert.deepEqual(result, {
1745
- message: ['Field 648 has invalid ending punctuation'],
1823
+ message: ['Field 648 has unwanted ending punctuation \'.\'', "Field 648 requires ending punctuation, ends in 'a'"],
1746
1824
  valid: false
1747
1825
  });
1748
1826
  });
@@ -1751,12 +1829,12 @@ describe('ending-punctuation', () => {
1751
1829
  const validator = await validatorFactory();
1752
1830
  const result = await validator.validate(recordInvalid648FastYes);
1753
1831
  assert.deepEqual(result, {
1754
- message: ['Field 648 has invalid ending punctuation'],
1832
+ message: ['Field 648 has unwanted ending punctuation \'.\''],
1755
1833
  valid: false
1756
1834
  });
1757
1835
  });
1758
1836
 
1759
- const invalidField650Message = 'Field 650 has invalid ending punctuation';
1837
+ const invalidField650Message = 'Field 650 has unwanted ending punctuation \'.\'';
1760
1838
  it('Finds record invalid - 650 Finnish, with punc', async () => {
1761
1839
  const validator = await validatorFactory();
1762
1840
  const result = await validator.validate(recordInvalid650FinYes);
@@ -1770,7 +1848,7 @@ describe('ending-punctuation', () => {
1770
1848
  const validator = await validatorFactory();
1771
1849
  const result = await validator.validate(recordInvalid650EngNoControl);
1772
1850
  assert.deepEqual(result, {
1773
- message: [invalidField650Message],
1851
+ message: ['Field 650 requires ending punctuation, ends in \'s\''],
1774
1852
  valid: false
1775
1853
  });
1776
1854
  });
@@ -1779,7 +1857,7 @@ describe('ending-punctuation', () => {
1779
1857
  const validator = await validatorFactory();
1780
1858
  const result = await validator.validate(recordInvalid650EngControl);
1781
1859
  assert.deepEqual(result, {
1782
- message: ['Field 650 has invalid ending punctuation'],
1860
+ message: ['Field 650 requires ending punctuation, ends in \'n\''],
1783
1861
  valid: false
1784
1862
  });
1785
1863
  });
@@ -1790,19 +1868,24 @@ describe('ending-punctuation', () => {
1790
1868
  const result = await validator.fix(recordInvalid647FastEndPunc);
1791
1869
  assert.equal(recordInvalid647FastEndPunc.equalsTo(recordValid647FastEndPunc), true);
1792
1870
  assert.deepEqual(result, {
1793
- message: ['Field 647 has invalid ending punctuation'],
1794
- fix: ['Field 647 - Removed double punctuation from $d'],
1871
+ message: ['Field 647 has an extra dot after \')\''],
1872
+ fix: ['Field 647 - Removed dot after punctuation from $d'],
1795
1873
  valid: false
1796
1874
  });
1797
1875
  });
1798
1876
 
1799
1877
  it('Repairs the invalid record - 648 Finnish, removes punc $a', async () => {
1800
1878
  const validator = await validatorFactory();
1801
- const result = await validator.fix(recordInvali648dFinYes);
1802
- assert.equal(recordInvali648dFinYes.equalsTo(recordVali648dFinNo), true);
1879
+ const result = await validator.fix(recordInvalid648FinYes);
1880
+ //console.info("NV-------");
1881
+ //console.info(JSON.stringify(recordInvalid648FinYes));
1882
+ //console.info(JSON.stringify(recordValid648FinNo));
1883
+ //assert.equal(recordInvalid648FinYes.equalsTo(recordValid648FinNo), true);
1884
+ assert.deepEqual(recordInvalid648FinYes, recordValid648FinNo);
1885
+ //console.info(JSON.stringify(result));
1803
1886
  assert.deepEqual(result, {
1804
- message: ['Field 648 has invalid ending punctuation'],
1805
- fix: ['Field 648 - Removed punctuation from $a'],
1887
+ message: ['Field 648 has unwanted ending punctuation \'.\'', "Field 648 requires ending punctuation, ends in 'a'"],
1888
+ fix: ['Field 648 - Removed punctuation from $a', 'Field 648 - Added punctuation to $a'],
1806
1889
  valid: false
1807
1890
  });
1808
1891
  });
@@ -1812,7 +1895,7 @@ describe('ending-punctuation', () => {
1812
1895
  const result = await validator.fix(recordInvalid648FastYes);
1813
1896
  assert.equal(recordInvalid648FastYes.equalsTo(recordValid648FastNo), true);
1814
1897
  assert.deepEqual(result, {
1815
- message: ['Field 648 has invalid ending punctuation'],
1898
+ message: ['Field 648 has unwanted ending punctuation \'.\''],
1816
1899
  fix: ['Field 648 - Removed punctuation from $a'],
1817
1900
  valid: false
1818
1901
  });
@@ -1834,7 +1917,7 @@ describe('ending-punctuation', () => {
1834
1917
  const result = await validator.fix(recordInvalid650EngNoControl);
1835
1918
  assert.equal(recordInvalid650EngNoControl.equalsTo(recordValid650EngNoControl), true);
1836
1919
  assert.deepEqual(result, {
1837
- message: ['Field 650 has invalid ending punctuation'],
1920
+ message: ['Field 650 requires ending punctuation, ends in \'s\''],
1838
1921
  fix: ['Field 650 - Added punctuation to $v'],
1839
1922
  valid: false
1840
1923
  });
@@ -1845,7 +1928,7 @@ describe('ending-punctuation', () => {
1845
1928
  const result = await validator.fix(recordInvalid650EngControl);
1846
1929
  assert.equal(recordInvalid650EngControl.equalsTo(recordValid650EngControl), true);
1847
1930
  assert.deepEqual(result, {
1848
- message: ['Field 650 has invalid ending punctuation'],
1931
+ message: ['Field 650 requires ending punctuation, ends in \'n\''],
1849
1932
  fix: ['Field 650 - Added punctuation to $a'],
1850
1933
  valid: false
1851
1934
  });
@@ -1855,7 +1938,7 @@ describe('ending-punctuation', () => {
1855
1938
  // "654-662 EI - EI suomalaisten sanastojen termeihin, muihin sanaston käytännön mukaan, yleensä KYLLÄ"
1856
1939
  // Finnish terms at $2:['ysa', 'yso', 'kassu', 'seko', 'valo', 'kulo', 'puho', 'oiko', 'mero', 'liito', 'fast', 'allars']
1857
1940
  // Default TRUE, until more special cases are added
1858
- describe('#654-662 TRUE - If finnish, else TRUE', () => {
1941
+ describe('#654-662 TRUE - If Finnish, else TRUE', () => {
1859
1942
  // Valid tests
1860
1943
  const recordValid655FinNo = new MarcRecord({
1861
1944
  leader: '',
@@ -2152,7 +2235,7 @@ describe('ending-punctuation', () => {
2152
2235
  const validator = await validatorFactory();
2153
2236
  const result = await validator.validate(recordInvalid655FinYes);
2154
2237
  assert.deepEqual(result, {
2155
- message: ['Field 655 has invalid ending punctuation'],
2238
+ message: ['Field 655 has unwanted ending punctuation \'.\''],
2156
2239
  valid: false
2157
2240
  });
2158
2241
  });
@@ -2161,7 +2244,7 @@ describe('ending-punctuation', () => {
2161
2244
  const validator = await validatorFactory();
2162
2245
  const result = await validator.validate(recordInvalid655FinYes2);
2163
2246
  assert.deepEqual(result, {
2164
- message: ['Field 655 has invalid ending punctuation'],
2247
+ message: ['Field 655 has unwanted ending punctuation \'.\''],
2165
2248
  valid: false
2166
2249
  });
2167
2250
  });
@@ -2170,7 +2253,7 @@ describe('ending-punctuation', () => {
2170
2253
  const validator = await validatorFactory();
2171
2254
  const result = await validator.validate(recordInvalid655EngNo);
2172
2255
  assert.deepEqual(result, {
2173
- message: ['Field 655 has invalid ending punctuation'],
2256
+ message: ['Field 655 requires ending punctuation, ends in \'4\''],
2174
2257
  valid: false
2175
2258
  });
2176
2259
  });
@@ -2179,7 +2262,7 @@ describe('ending-punctuation', () => {
2179
2262
  const validator = await validatorFactory();
2180
2263
  const result = await validator.validate(recordInvalid655EngNoNoControl);
2181
2264
  assert.deepEqual(result, {
2182
- message: ['Field 655 has invalid ending punctuation'],
2265
+ message: ['Field 655 requires ending punctuation, ends in \'s\''],
2183
2266
  valid: false
2184
2267
  });
2185
2268
  });
@@ -2188,7 +2271,7 @@ describe('ending-punctuation', () => {
2188
2271
  const validator = await validatorFactory();
2189
2272
  const result = await validator.validate(recordInvalid656FinYes);
2190
2273
  assert.deepEqual(result, {
2191
- message: ['Field 656 has invalid ending punctuation'],
2274
+ message: ['Field 656 has unwanted ending punctuation \'.\''],
2192
2275
  valid: false
2193
2276
  });
2194
2277
  });
@@ -2197,7 +2280,7 @@ describe('ending-punctuation', () => {
2197
2280
  const validator = await validatorFactory();
2198
2281
  const result = await validator.validate(recordInvalid657EngNo);
2199
2282
  assert.deepEqual(result, {
2200
- message: ['Field 657 has invalid ending punctuation'],
2283
+ message: ['Field 657 requires ending punctuation, ends in \'k\''],
2201
2284
  valid: false
2202
2285
  });
2203
2286
  });
@@ -2206,7 +2289,7 @@ describe('ending-punctuation', () => {
2206
2289
  const validator = await validatorFactory();
2207
2290
  const result = await validator.validate(recordInvalid658EngNo);
2208
2291
  assert.deepEqual(result, {
2209
- message: ['Field 658 has invalid ending punctuation'],
2292
+ message: ['Field 658 requires ending punctuation, ends in \'d\''],
2210
2293
  valid: false
2211
2294
  });
2212
2295
  });
@@ -2215,7 +2298,7 @@ describe('ending-punctuation', () => {
2215
2298
  const validator = await validatorFactory();
2216
2299
  const result = await validator.validate(recordInvalid662EngNo);
2217
2300
  assert.deepEqual(result, {
2218
- message: ['Field 662 has invalid ending punctuation'],
2301
+ message: ['Field 662 requires ending punctuation, ends in \'a\''],
2219
2302
  valid: false
2220
2303
  });
2221
2304
  });
@@ -2226,7 +2309,7 @@ describe('ending-punctuation', () => {
2226
2309
  const result = await validator.fix(recordInvalid655FinYes);
2227
2310
  assert.equal(recordInvalid655FinYes.equalsTo(recordValid655FinNo), true);
2228
2311
  assert.deepEqual(result, {
2229
- message: ['Field 655 has invalid ending punctuation'],
2312
+ message: ['Field 655 has unwanted ending punctuation \'.\''],
2230
2313
  fix: ['Field 655 - Removed punctuation from $a'],
2231
2314
  valid: false
2232
2315
  });
@@ -2237,7 +2320,7 @@ describe('ending-punctuation', () => {
2237
2320
  const result = await validator.fix(recordInvalid655FinYes2);
2238
2321
  assert.equal(recordInvalid655FinYes2.equalsTo(recordValid655FinNo2), true);
2239
2322
  assert.deepEqual(result, {
2240
- message: ['Field 655 has invalid ending punctuation'],
2323
+ message: ['Field 655 has unwanted ending punctuation \'.\''],
2241
2324
  fix: ['Field 655 - Removed punctuation from $a'],
2242
2325
  valid: false
2243
2326
  });
@@ -2248,7 +2331,7 @@ describe('ending-punctuation', () => {
2248
2331
  const result = await validator.fix(recordInvalid655EngNo);
2249
2332
  assert.equal(recordInvalid655EngNo.equalsTo(recordValid655EngYes), true);
2250
2333
  assert.deepEqual(result, {
2251
- message: ['Field 655 has invalid ending punctuation'],
2334
+ message: ['Field 655 requires ending punctuation, ends in \'4\''],
2252
2335
  fix: ['Field 655 - Added punctuation to $y'],
2253
2336
  valid: false
2254
2337
  });
@@ -2259,7 +2342,7 @@ describe('ending-punctuation', () => {
2259
2342
  const result = await validator.fix(recordInvalid655EngNoNoControl);
2260
2343
  assert.equal(recordInvalid655EngNoNoControl.equalsTo(recordValid655EngYesNoControl), true);
2261
2344
  assert.deepEqual(result, {
2262
- message: ['Field 655 has invalid ending punctuation'],
2345
+ message: ['Field 655 requires ending punctuation, ends in \'s\''],
2263
2346
  fix: ['Field 655 - Added punctuation to $a'],
2264
2347
  valid: false
2265
2348
  });
@@ -2270,7 +2353,7 @@ describe('ending-punctuation', () => {
2270
2353
  const result = await validator.fix(recordInvalid656FinYes);
2271
2354
  assert.equal(recordInvalid656FinYes.equalsTo(recordValid656FinNo), true);
2272
2355
  assert.deepEqual(result, {
2273
- message: ['Field 656 has invalid ending punctuation'],
2356
+ message: ['Field 656 has unwanted ending punctuation \'.\''],
2274
2357
  fix: ['Field 656 - Removed punctuation from $a'],
2275
2358
  valid: false
2276
2359
  });
@@ -2281,7 +2364,7 @@ describe('ending-punctuation', () => {
2281
2364
  const result = await validator.fix(recordInvalid657EngNo);
2282
2365
  assert.equal(recordInvalid657EngNo.equalsTo(recordValid657EngYes), true);
2283
2366
  assert.deepEqual(result, {
2284
- message: ['Field 657 has invalid ending punctuation'],
2367
+ message: ['Field 657 requires ending punctuation, ends in \'k\''],
2285
2368
  fix: ['Field 657 - Added punctuation to $z'],
2286
2369
  valid: false
2287
2370
  });
@@ -2292,18 +2375,18 @@ describe('ending-punctuation', () => {
2292
2375
  const result = await validator.fix(recordInvalid658EngNo);
2293
2376
  assert.equal(recordInvalid658EngNo.equalsTo(recordValid658EngYes), true);
2294
2377
  assert.deepEqual(result, {
2295
- message: ['Field 658 has invalid ending punctuation'],
2378
+ message: ['Field 658 requires ending punctuation, ends in \'d\''],
2296
2379
  fix: ['Field 658 - Added punctuation to $d'],
2297
2380
  valid: false
2298
2381
  });
2299
2382
  });
2300
2383
 
2301
- it('Repairs the invalid record - 662 !Finnish, add pun $a', async () => {
2384
+ it('Repairs the invalid record - 662 !Finnish, add punc $a', async () => {
2302
2385
  const validator = await validatorFactory();
2303
2386
  const result = await validator.fix(recordInvalid662EngNo);
2304
2387
  assert.equal(recordInvalid662EngNo.equalsTo(recordValid662EngYes), true);
2305
2388
  assert.deepEqual(result, {
2306
- message: ['Field 662 has invalid ending punctuation'],
2389
+ message: ['Field 662 requires ending punctuation, ends in \'a\''],
2307
2390
  fix: ['Field 662 - Added punctuation to $a'],
2308
2391
  valid: false
2309
2392
  });
@@ -2387,7 +2470,7 @@ describe('ending-punctuation', () => {
2387
2470
  const validator = await validatorFactory();
2388
2471
  const result = await validator.validate(recordInvalid);
2389
2472
  assert.deepEqual(result, {
2390
- message: ['Field 760 has invalid ending punctuation'],
2473
+ message: ['Field 760 has unwanted ending punctuation \'.\''],
2391
2474
  valid: false
2392
2475
  });
2393
2476
  });
@@ -2396,7 +2479,7 @@ describe('ending-punctuation', () => {
2396
2479
  const validator = await validatorFactory();
2397
2480
  const result = await validator.validate(recordInvalidOnlyA);
2398
2481
  assert.deepEqual(result, {
2399
- message: ['Field 760 has invalid ending punctuation'],
2482
+ message: ['Field 760 requires ending punctuation, ends in \'c\''],
2400
2483
  valid: false
2401
2484
  });
2402
2485
  });
@@ -2407,7 +2490,7 @@ describe('ending-punctuation', () => {
2407
2490
  const result = await validator.fix(recordInvalid);
2408
2491
  assert.equal(recordInvalid.equalsTo(recordValid), true);
2409
2492
  assert.deepEqual(result, {
2410
- message: ['Field 760 has invalid ending punctuation'],
2493
+ message: ['Field 760 has unwanted ending punctuation \'.\''],
2411
2494
  fix: ['Field 760 - Removed punctuation from $e'],
2412
2495
  valid: false
2413
2496
  });
@@ -2418,7 +2501,7 @@ describe('ending-punctuation', () => {
2418
2501
  const result = await validator.fix(recordInvalidOnlyA);
2419
2502
  assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
2420
2503
  assert.deepEqual(result, {
2421
- message: ['Field 760 has invalid ending punctuation'],
2504
+ message: ['Field 760 requires ending punctuation, ends in \'c\''],
2422
2505
  fix: ['Field 760 - Added punctuation to $a'],
2423
2506
  valid: false
2424
2507
  });
@@ -2513,7 +2596,7 @@ describe('ending-punctuation', () => {
2513
2596
  const validator = await validatorFactory();
2514
2597
  const result = await validator.validate(recordInvalidSimple);
2515
2598
  assert.deepEqual(result, {
2516
- message: ['Field 880 has invalid ending punctuation'],
2599
+ message: ['Field 880 requires ending punctuation, ends in \'3\''],
2517
2600
  valid: false
2518
2601
  });
2519
2602
  });
@@ -2522,7 +2605,7 @@ describe('ending-punctuation', () => {
2522
2605
  const validator = await validatorFactory();
2523
2606
  const result = await validator.validate(recordInvalidComplex);
2524
2607
  assert.deepEqual(result, {
2525
- message: ['Field 880 has invalid ending punctuation'],
2608
+ message: ['Field 880 requires ending punctuation, ends in \'6\''],
2526
2609
  valid: false
2527
2610
  });
2528
2611
  });
@@ -2533,7 +2616,7 @@ describe('ending-punctuation', () => {
2533
2616
  const result = await validator.fix(recordInvalidSimple);
2534
2617
  assert.equal(recordInvalidSimple.equalsTo(recordValidSimple), true);
2535
2618
  assert.deepEqual(result, {
2536
- message: ['Field 880 has invalid ending punctuation'],
2619
+ message: ['Field 880 requires ending punctuation, ends in \'3\''],
2537
2620
  fix: ['Field 880 - Added punctuation to $b'],
2538
2621
  valid: false
2539
2622
  });
@@ -2544,7 +2627,7 @@ describe('ending-punctuation', () => {
2544
2627
  const result = await validator.fix(recordInvalidComplex);
2545
2628
  assert.equal(recordInvalidComplex.equalsTo(recordValidComplex), true);
2546
2629
  assert.deepEqual(result, {
2547
- message: ['Field 880 has invalid ending punctuation'],
2630
+ message: ['Field 880 requires ending punctuation, ends in \'6\''],
2548
2631
  fix: ['Field 880 - Added punctuation to $c'],
2549
2632
  valid: false
2550
2633
  });