@natlibfi/marc-record-validators-melinda 11.6.7 → 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.
- package/.github/workflows/{melinda-node-tests.yml → melinda-node-tests-and-publish.yml} +37 -12
- package/dist/access-rights.js +63 -91
- package/dist/access-rights.js.map +7 -1
- package/dist/access-rights.test.js +137 -0
- package/dist/access-rights.test.js.map +7 -0
- package/dist/addMissingField041.js +21 -53
- package/dist/addMissingField041.js.map +7 -1
- package/dist/addMissingField041.test.js +39 -0
- package/dist/addMissingField041.test.js.map +7 -0
- package/dist/addMissingField336.js +99 -191
- package/dist/addMissingField336.js.map +7 -1
- package/dist/addMissingField336.test.js +39 -0
- package/dist/addMissingField336.test.js.map +7 -0
- package/dist/addMissingField337.js +63 -132
- package/dist/addMissingField337.js.map +7 -1
- package/dist/addMissingField337.test.js +39 -0
- package/dist/addMissingField337.test.js.map +7 -0
- package/dist/addMissingField338.js +147 -253
- package/dist/addMissingField338.js.map +7 -1
- package/dist/addMissingField338.test.js +39 -0
- package/dist/addMissingField338.test.js.map +7 -0
- package/dist/cyrillux-usemarcon-replacement.js +119 -272
- package/dist/cyrillux-usemarcon-replacement.js.map +7 -1
- package/dist/cyrillux-usemarcon-replacement.test.js +43 -0
- package/dist/cyrillux-usemarcon-replacement.test.js.map +7 -0
- package/dist/cyrillux.js +119 -223
- package/dist/cyrillux.js.map +7 -1
- package/dist/cyrillux.test.js +39 -0
- package/dist/cyrillux.test.js.map +7 -0
- package/dist/disambiguateSeriesStatements.js +40 -81
- package/dist/disambiguateSeriesStatements.js.map +7 -1
- package/dist/disambiguateSeriesStatements.test.js +44 -0
- package/dist/disambiguateSeriesStatements.test.js.map +7 -0
- package/dist/double-commas.js +7 -14
- package/dist/double-commas.js.map +7 -1
- package/dist/double-commas.test.js +48 -0
- package/dist/double-commas.test.js.map +7 -0
- package/dist/duplicates-ind1.js +10 -31
- package/dist/duplicates-ind1.js.map +7 -1
- package/dist/duplicates-ind1.test.js +40 -0
- package/dist/duplicates-ind1.test.js.map +7 -0
- package/dist/empty-fields.js +10 -22
- package/dist/empty-fields.js.map +7 -1
- package/dist/empty-fields.test.js +129 -0
- package/dist/empty-fields.test.js.map +7 -0
- package/dist/ending-punctuation-conf.js +873 -769
- package/dist/ending-punctuation-conf.js.map +7 -1
- package/dist/ending-punctuation.js +156 -169
- package/dist/ending-punctuation.js.map +7 -1
- package/dist/ending-punctuation.test.js +2385 -0
- package/dist/ending-punctuation.test.js.map +7 -0
- package/dist/ending-whitespace.js +10 -35
- package/dist/ending-whitespace.js.map +7 -1
- package/dist/ending-whitespace.test.js +38 -0
- package/dist/ending-whitespace.test.js.map +7 -0
- package/dist/field-008-18-34-character-groups.js +40 -125
- package/dist/field-008-18-34-character-groups.js.map +7 -1
- package/dist/field-008-18-34-character-groups.test.js +45 -0
- package/dist/field-008-18-34-character-groups.test.js.map +7 -0
- package/dist/field-505-separators.js +19 -39
- package/dist/field-505-separators.js.map +7 -1
- package/dist/field-505-separators.test.js +45 -0
- package/dist/field-505-separators.test.js.map +7 -0
- package/dist/field-521-fix.js +19 -47
- package/dist/field-521-fix.js.map +7 -1
- package/dist/field-521-fix.test.js +44 -0
- package/dist/field-521-fix.test.js.map +7 -0
- package/dist/field-exclusion.js +37 -91
- package/dist/field-exclusion.js.map +7 -1
- package/dist/field-exclusion.test.js +821 -0
- package/dist/field-exclusion.test.js.map +7 -0
- package/dist/field-structure.js +52 -104
- package/dist/field-structure.js.map +7 -1
- package/dist/field-structure.test.js +587 -0
- package/dist/field-structure.test.js.map +7 -0
- package/dist/field33XUtils.js +119 -503
- package/dist/field33XUtils.js.map +7 -1
- package/dist/fields-present.js +11 -23
- package/dist/fields-present.js.map +7 -1
- package/dist/fields-present.test.js +95 -0
- package/dist/fields-present.test.js.map +7 -0
- package/dist/fix-33X.js +393 -431
- package/dist/fix-33X.js.map +7 -1
- package/dist/fix-33X.test.js +39 -0
- package/dist/fix-33X.test.js.map +7 -0
- package/dist/fix-country-codes.js +20 -50
- package/dist/fix-country-codes.js.map +7 -1
- package/dist/fix-country-codes.test.js +44 -0
- package/dist/fix-country-codes.test.js.map +7 -0
- package/dist/fix-language-codes.js +23 -53
- package/dist/fix-language-codes.js.map +7 -1
- package/dist/fix-language-codes.test.js +38 -0
- package/dist/fix-language-codes.test.js.map +7 -0
- package/dist/fixRelatorTerms.js +82 -209
- package/dist/fixRelatorTerms.js.map +7 -1
- package/dist/fixRelatorTerms.test.js +44 -0
- package/dist/fixRelatorTerms.test.js.map +7 -0
- package/dist/fixed-fields.js +21 -30
- package/dist/fixed-fields.js.map +7 -1
- package/dist/fixed-fields.test.js +87 -0
- package/dist/fixed-fields.test.js.map +7 -0
- package/dist/identical-fields.js +8 -24
- package/dist/identical-fields.js.map +7 -1
- package/dist/identical-fields.test.js +119 -0
- package/dist/identical-fields.test.js.map +7 -0
- package/dist/index.js +182 -413
- package/dist/index.js.map +7 -1
- package/dist/indicator-fixes.js +66 -94
- package/dist/indicator-fixes.js.map +7 -1
- package/dist/indicator-fixes.test.js +42 -0
- package/dist/indicator-fixes.test.js.map +7 -0
- package/dist/isbn-issn.js +71 -128
- package/dist/isbn-issn.js.map +7 -1
- package/dist/isbn-issn.test.js +398 -0
- package/dist/isbn-issn.test.js.map +7 -0
- package/dist/item-language.js +32 -65
- package/dist/item-language.js.map +7 -1
- package/dist/item-language.test.js +322 -0
- package/dist/item-language.test.js.map +7 -0
- package/dist/melindaCustomMergeFields.js +5182 -11233
- package/dist/melindaCustomMergeFields.js.map +7 -1
- package/dist/merge-fields/controlSubfields.js +75 -142
- package/dist/merge-fields/controlSubfields.js.map +7 -1
- package/dist/merge-fields/counterpartField.js +187 -379
- package/dist/merge-fields/counterpartField.js.map +7 -1
- package/dist/merge-fields/dataProvenance.js +29 -0
- package/dist/merge-fields/dataProvenance.js.map +7 -0
- package/dist/merge-fields/index.js +25 -50
- package/dist/merge-fields/index.js.map +7 -1
- package/dist/merge-fields/mergableIndicator.js +18 -51
- package/dist/merge-fields/mergableIndicator.js.map +7 -1
- package/dist/merge-fields/mergableTag.js +78 -30
- package/dist/merge-fields/mergableTag.js.map +7 -1
- package/dist/merge-fields/mergeConfig.js +66 -171
- package/dist/merge-fields/mergeConfig.js.map +7 -1
- package/dist/merge-fields/mergeConstraints.js +323 -1214
- package/dist/merge-fields/mergeConstraints.js.map +7 -1
- package/dist/merge-fields/mergeField.js +47 -111
- package/dist/merge-fields/mergeField.js.map +7 -1
- package/dist/merge-fields/mergeIndicator.js +64 -118
- package/dist/merge-fields/mergeIndicator.js.map +7 -1
- package/dist/merge-fields/mergeOrAddPostprocess.js +14 -38
- package/dist/merge-fields/mergeOrAddPostprocess.js.map +7 -1
- package/dist/merge-fields/mergeOrAddSubfield.js +62 -104
- package/dist/merge-fields/mergeOrAddSubfield.js.map +7 -1
- package/dist/merge-fields/mergeSubfield.js +47 -95
- package/dist/merge-fields/mergeSubfield.js.map +7 -1
- package/dist/merge-fields/removeDuplicateSubfields.js +18 -31
- package/dist/merge-fields/removeDuplicateSubfields.js.map +7 -1
- package/dist/merge-fields/worldKnowledge.js +15 -40
- package/dist/merge-fields/worldKnowledge.js.map +7 -1
- package/dist/merge-fields.test.js +46 -0
- package/dist/merge-fields.test.js.map +7 -0
- package/dist/mergeField500Lisapainokset.js +27 -56
- package/dist/mergeField500Lisapainokset.js.map +7 -1
- package/dist/mergeField500Lisapainokset.test.js +44 -0
- package/dist/mergeField500Lisapainokset.test.js.map +7 -0
- package/dist/mergeRelatorTermFields.js +33 -69
- package/dist/mergeRelatorTermFields.js.map +7 -1
- package/dist/mergeRelatorTermFields.test.js +44 -0
- package/dist/mergeRelatorTermFields.test.js.map +7 -0
- package/dist/modernize-502.js +23 -55
- package/dist/modernize-502.js.map +7 -1
- package/dist/modernize-502.test.js +38 -0
- package/dist/modernize-502.test.js.map +7 -0
- package/dist/multiple-subfield-0.js +23 -48
- package/dist/multiple-subfield-0.js.map +7 -1
- package/dist/multiple-subfield-0.test.js +44 -0
- package/dist/multiple-subfield-0.test.js.map +7 -0
- package/dist/non-breaking-space.js +11 -32
- package/dist/non-breaking-space.js.map +7 -1
- package/dist/non-breaking-space.test.js +38 -0
- package/dist/non-breaking-space.test.js.map +7 -0
- package/dist/normalize-dashes.js +18 -37
- package/dist/normalize-dashes.js.map +7 -1
- package/dist/normalize-dashes.test.js +44 -0
- package/dist/normalize-dashes.test.js.map +7 -0
- package/dist/normalize-identifiers.js +54 -140
- package/dist/normalize-identifiers.js.map +7 -1
- package/dist/normalize-identifiers.test.js +44 -0
- package/dist/normalize-identifiers.test.js.map +7 -0
- package/dist/normalize-qualifying-information.js +23 -48
- package/dist/normalize-qualifying-information.js.map +7 -1
- package/dist/normalize-qualifying-information.test.js +44 -0
- package/dist/normalize-qualifying-information.test.js.map +7 -0
- package/dist/normalize-utf8-diacritics.js +19 -105
- package/dist/normalize-utf8-diacritics.js.map +7 -1
- package/dist/normalize-utf8-diacritics.test.js +44 -0
- package/dist/normalize-utf8-diacritics.test.js.map +7 -0
- package/dist/normalizeFieldForComparison.js +91 -158
- package/dist/normalizeFieldForComparison.js.map +7 -1
- package/dist/normalizeSubfieldValueForComparison.js +37 -77
- package/dist/normalizeSubfieldValueForComparison.js.map +7 -1
- package/dist/prepublicationUtils.js +58 -111
- package/dist/prepublicationUtils.js.map +7 -1
- package/dist/punctuation/index.js +56 -72
- package/dist/punctuation/index.js.map +7 -1
- package/dist/punctuation/rules/aut.js +372 -331
- package/dist/punctuation/rules/aut.js.map +7 -1
- package/dist/punctuation/rules/bib.js +420 -373
- package/dist/punctuation/rules/bib.js.map +7 -1
- package/dist/punctuation/rules/index.js +7 -21
- package/dist/punctuation/rules/index.js.map +7 -1
- package/dist/punctuation.test.js +44 -0
- package/dist/punctuation.test.js.map +7 -0
- package/dist/punctuation2.js +259 -802
- package/dist/punctuation2.js.map +7 -1
- package/dist/punctuation2.test.js +44 -0
- package/dist/punctuation2.test.js.map +7 -0
- package/dist/reindexSubfield6OccurenceNumbers.js +61 -96
- package/dist/reindexSubfield6OccurenceNumbers.js.map +7 -1
- package/dist/reindexSubfield6OccurenceNumbers.test.js +44 -0
- package/dist/reindexSubfield6OccurenceNumbers.test.js.map +7 -0
- package/dist/removeDuplicateDataFields.js +102 -202
- package/dist/removeDuplicateDataFields.js.map +7 -1
- package/dist/removeDuplicateDataFields.test.js +44 -0
- package/dist/removeDuplicateDataFields.test.js.map +7 -0
- package/dist/removeInferiorDataFields.js +104 -227
- package/dist/removeInferiorDataFields.js.map +7 -1
- package/dist/removeInferiorDataFields.test.js +44 -0
- package/dist/removeInferiorDataFields.test.js.map +7 -0
- package/dist/resolvable-ext-references-melinda.js +25 -60
- package/dist/resolvable-ext-references-melinda.js.map +7 -1
- package/dist/resolvable-ext-references-melinda.test.js +160 -0
- package/dist/resolvable-ext-references-melinda.test.js.map +7 -0
- package/dist/resolveOrphanedSubfield6s.js +32 -63
- package/dist/resolveOrphanedSubfield6s.js.map +7 -1
- package/dist/resolveOrphanedSubfield6s.test.js +44 -0
- package/dist/resolveOrphanedSubfield6s.test.js.map +7 -0
- package/dist/sanitize-vocabulary-source-codes.js +27 -55
- package/dist/sanitize-vocabulary-source-codes.js.map +7 -1
- package/dist/sanitize-vocabulary-source-codes.test.js +45 -0
- package/dist/sanitize-vocabulary-source-codes.test.js.map +7 -0
- package/dist/sort-tags.js +13 -25
- package/dist/sort-tags.js.map +7 -1
- package/dist/sort-tags.test.js +261 -0
- package/dist/sort-tags.test.js.map +7 -0
- package/dist/sortFields.js +152 -222
- package/dist/sortFields.js.map +7 -1
- package/dist/sortFields.test.js +44 -0
- package/dist/sortFields.test.js.map +7 -0
- package/dist/sortRelatorTerms.js +30 -68
- package/dist/sortRelatorTerms.js.map +7 -1
- package/dist/sortRelatorTerms.test.js +44 -0
- package/dist/sortRelatorTerms.test.js.map +7 -0
- package/dist/sortSubfields.js +102 -255
- package/dist/sortSubfields.js.map +7 -1
- package/dist/sortSubfields.test.js +44 -0
- package/dist/sortSubfields.test.js.map +7 -0
- package/dist/stripPunctuation.js +13 -36
- package/dist/stripPunctuation.js.map +7 -1
- package/dist/stripPunctuation.test.js +44 -0
- package/dist/stripPunctuation.test.js.map +7 -0
- package/dist/subfield-exclusion.js +28 -75
- package/dist/subfield-exclusion.js.map +7 -1
- package/dist/subfield-exclusion.test.js +471 -0
- package/dist/subfield-exclusion.test.js.map +7 -0
- package/dist/subfield6Utils.js +107 -269
- package/dist/subfield6Utils.js.map +7 -1
- package/dist/subfield8Utils.js +26 -50
- package/dist/subfield8Utils.js.map +7 -1
- package/dist/subfieldValueNormalizations.js +40 -74
- package/dist/subfieldValueNormalizations.js.map +7 -1
- package/dist/subfieldValueNormalizations.test.js +45 -0
- package/dist/subfieldValueNormalizations.test.js.map +7 -0
- package/dist/sync-007-and-300.js +22 -53
- package/dist/sync-007-and-300.js.map +7 -1
- package/dist/sync-007-and-300.test.js +44 -0
- package/dist/sync-007-and-300.test.js.map +7 -0
- package/dist/translate-terms.js +67 -155
- package/dist/translate-terms.js.map +7 -1
- package/dist/translate-terms.test.js +54 -0
- package/dist/translate-terms.test.js.map +7 -0
- package/dist/typeOfDate-008.js +10 -25
- package/dist/typeOfDate-008.js.map +7 -1
- package/dist/typeOfDate-008.test.js +40 -0
- package/dist/typeOfDate-008.test.js.map +7 -0
- package/dist/unicode-decomposition.js +94 -107
- package/dist/unicode-decomposition.js.map +7 -1
- package/dist/unicode-decomposition.test.js +94 -0
- package/dist/unicode-decomposition.test.js.map +7 -0
- package/dist/update-field-540.js +30 -75
- package/dist/update-field-540.js.map +7 -1
- package/dist/update-field-540.test.js +44 -0
- package/dist/update-field-540.test.js.map +7 -0
- package/dist/urn.js +55 -128
- package/dist/urn.js.map +7 -1
- package/dist/urn.test.js +44 -0
- package/dist/urn.test.js.map +7 -0
- package/dist/utils.js +78 -126
- package/dist/utils.js.map +7 -1
- package/eslint.config.mjs +1 -2
- package/package.json +28 -101
- package/src/access-rights.js +1 -1
- package/src/{access-rights.spec.js → access-rights.test.js} +9 -10
- package/src/addMissingField041.js +1 -1
- package/src/{addMissingField336.spec.js → addMissingField041.test.js} +13 -14
- package/src/addMissingField336.js +3 -3
- package/src/{addMissingField041.spec.js → addMissingField336.test.js} +13 -14
- package/src/addMissingField337.js +2 -2
- package/src/{addMissingField337.spec.js → addMissingField337.test.js} +13 -14
- package/src/addMissingField338.js +2 -2
- package/src/{addMissingField338.spec.js → addMissingField338.test.js} +13 -14
- package/src/cyrillux-usemarcon-replacement.js +18 -18
- package/src/{cyrillux-usemarcon-replacement.spec.js → cyrillux-usemarcon-replacement.test.js} +17 -14
- package/src/cyrillux.js +19 -12
- package/src/{cyrillux.spec.js → cyrillux.test.js} +13 -14
- package/src/disambiguateSeriesStatements.js +2 -2
- package/src/{disambiguateSeriesStatements.spec.js → disambiguateSeriesStatements.test.js} +12 -13
- package/src/double-commas.js +1 -1
- package/src/{double-commas.spec.js → double-commas.test.js} +9 -11
- package/src/duplicates-ind1.js +1 -1
- package/src/{duplicates-ind1.spec.js → duplicates-ind1.test.js} +12 -13
- package/src/{empty-fields.spec.js → empty-fields.test.js} +11 -13
- package/src/ending-punctuation-conf.js +6 -5
- package/src/ending-punctuation.js +115 -24
- package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +357 -275
- package/src/{ending-whitespace.spec.js → ending-whitespace.test.js} +12 -13
- package/src/field-008-18-34-character-groups.js +2 -2
- package/src/{field-008-18-34-character-groups.spec.js → field-008-18-34-character-groups.test.js} +13 -13
- package/src/field-505-separators.js +3 -3
- package/src/{field-505-separators.spec.js → field-505-separators.test.js} +16 -14
- package/src/field-521-fix.js +2 -2
- package/src/{field-521-fix.spec.js → field-521-fix.test.js} +12 -13
- package/src/field-exclusion.js +1 -1
- package/src/{field-exclusion.spec.js → field-exclusion.test.js} +60 -57
- package/src/{field-structure.spec.js → field-structure.test.js} +29 -29
- package/src/{fields-present.spec.js → fields-present.test.js} +12 -15
- package/src/fix-33X.js +4 -4
- package/src/{fix-33X.spec.js → fix-33X.test.js} +13 -14
- package/src/fix-country-codes.js +1 -1
- package/src/{fix-country-codes.spec.js → fix-country-codes.test.js} +12 -13
- package/src/fix-language-codes.js +5 -5
- package/src/{fix-language-codes.spec.js → fix-language-codes.test.js} +12 -13
- package/src/fixRelatorTerms.js +5 -5
- package/src/{fixRelatorTerms.spec.js → fixRelatorTerms.test.js} +13 -13
- package/src/{fixed-fields.spec.js → fixed-fields.test.js} +11 -14
- package/src/identical-fields.js +1 -1
- package/src/{identical-fields.spec.js → identical-fields.test.js} +9 -11
- package/src/index.js +132 -59
- package/src/indicator-fixes.js +17 -4
- package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
- package/src/isbn-issn.js +12 -7
- package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
- package/src/{item-language.spec.js → item-language.test.js} +21 -22
- package/src/melindaCustomMergeFields.js +1 -1
- package/src/merge-fields/controlSubfields.js +1 -1
- package/src/merge-fields/counterpartField.js +14 -9
- package/src/merge-fields/dataProvenance.js +41 -0
- package/src/merge-fields/index.js +12 -3
- package/src/merge-fields/mergableIndicator.js +1 -1
- package/src/merge-fields/mergeField.js +8 -8
- package/src/merge-fields/mergeIndicator.js +1 -1
- package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
- package/src/merge-fields/mergeOrAddSubfield.js +2 -2
- package/src/merge-fields/mergeSubfield.js +4 -4
- package/src/merge-fields/removeDuplicateSubfields.js +2 -2
- package/src/{merge-fields.spec.js → merge-fields.test.js} +18 -15
- package/src/mergeField500Lisapainokset.js +1 -1
- package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
- package/src/mergeRelatorTermFields.js +5 -7
- package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
- package/src/modernize-502.js +1 -1
- package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
- package/src/multiple-subfield-0.js +3 -3
- package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
- package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
- package/src/normalize-dashes.js +2 -2
- package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
- package/src/normalize-identifiers.js +1 -1
- package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
- package/src/normalize-qualifying-information.js +2 -2
- package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
- package/src/normalize-utf8-diacritics.js +2 -2
- package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
- package/src/normalizeFieldForComparison.js +32 -6
- package/src/normalizeSubfieldValueForComparison.js +1 -1
- package/src/prepublicationUtils.js +4 -4
- package/src/punctuation/index.js +1 -1
- package/src/punctuation/rules/index.js +2 -2
- package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
- package/src/punctuation2.js +17 -8
- package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
- package/src/reindexSubfield6OccurenceNumbers.js +5 -7
- package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
- package/src/removeDuplicateDataFields.js +11 -19
- package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
- package/src/removeInferiorDataFields.js +15 -12
- package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
- package/src/resolvable-ext-references-melinda.js +1 -1
- package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
- package/src/resolveOrphanedSubfield6s.js +6 -6
- package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
- package/src/sanitize-vocabulary-source-codes.js +4 -4
- package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
- package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
- package/src/sortFields.js +4 -4
- package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
- package/src/sortRelatorTerms.js +3 -3
- package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
- package/src/sortSubfields.js +8 -6
- package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
- package/src/stripPunctuation.js +3 -3
- package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
- package/src/subfield-exclusion.js +1 -1
- package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
- package/src/subfield6Utils.js +6 -10
- package/src/subfield8Utils.js +4 -4
- package/src/subfieldValueNormalizations.js +3 -3
- package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
- package/src/sync-007-and-300.js +2 -2
- package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
- package/src/translate-terms.js +3 -3
- package/src/translate-terms.test.js +75 -0
- package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
- package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
- package/src/update-field-540.js +2 -2
- package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
- package/src/urn.js +2 -2
- package/src/{urn.spec.js → urn.test.js} +12 -13
- package/src/utils.js +21 -5
- package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
- package/test-fixtures/field-505-separators/03/record.json +3 -0
- package/test-fixtures/indicator-fixes/10/expectedResult.json +11 -0
- package/test-fixtures/indicator-fixes/10/metadata.json +4 -0
- package/test-fixtures/indicator-fixes/10/record.json +11 -0
- package/test-fixtures/merge-fields/f05/expectedResult.json +24 -0
- package/test-fixtures/merge-fields/f05/metadata.json +6 -0
- package/test-fixtures/merge-fields/f05/record.json +30 -0
- package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
- package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
- package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
- package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
- package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
- package/test-fixtures/remove-inferior-datafields/f16/expectedResult.json +12 -0
- package/test-fixtures/remove-inferior-datafields/f16/metadata.json +5 -0
- package/test-fixtures/remove-inferior-datafields/f16/record.json +14 -0
- package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
- package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
- package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
- package/test-fixtures/translate-terms-data.js +42 -0
- package/dist/access-rights.spec.js +0 -195
- package/dist/access-rights.spec.js.map +0 -1
- package/dist/addMissingField041.spec.js +0 -45
- package/dist/addMissingField041.spec.js.map +0 -1
- package/dist/addMissingField336.spec.js +0 -45
- package/dist/addMissingField336.spec.js.map +0 -1
- package/dist/addMissingField337.spec.js +0 -43
- package/dist/addMissingField337.spec.js.map +0 -1
- package/dist/addMissingField338.spec.js +0 -45
- package/dist/addMissingField338.spec.js.map +0 -1
- package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
- package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
- package/dist/cyrillux.spec.js +0 -46
- package/dist/cyrillux.spec.js.map +0 -1
- package/dist/disambiguateSeriesStatements.spec.js +0 -51
- package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
- package/dist/double-commas.spec.js +0 -73
- package/dist/double-commas.spec.js.map +0 -1
- package/dist/duplicates-ind1.spec.js +0 -45
- package/dist/duplicates-ind1.spec.js.map +0 -1
- package/dist/empty-fields.spec.js +0 -118
- package/dist/empty-fields.spec.js.map +0 -1
- package/dist/ending-punctuation.spec.js +0 -2654
- package/dist/ending-punctuation.spec.js.map +0 -1
- package/dist/ending-whitespace.spec.js +0 -42
- package/dist/ending-whitespace.spec.js.map +0 -1
- package/dist/field-008-18-34-character-groups.spec.js +0 -51
- package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
- package/dist/field-505-separators.spec.js +0 -51
- package/dist/field-505-separators.spec.js.map +0 -1
- package/dist/field-521-fix.spec.js +0 -51
- package/dist/field-521-fix.spec.js.map +0 -1
- package/dist/field-exclusion.spec.js +0 -1054
- package/dist/field-exclusion.spec.js.map +0 -1
- package/dist/field-structure.spec.js +0 -535
- package/dist/field-structure.spec.js.map +0 -1
- package/dist/fields-present.spec.js +0 -121
- package/dist/fields-present.spec.js.map +0 -1
- package/dist/fix-33X.spec.js +0 -45
- package/dist/fix-33X.spec.js.map +0 -1
- package/dist/fix-country-codes.spec.js +0 -51
- package/dist/fix-country-codes.spec.js.map +0 -1
- package/dist/fix-language-codes.spec.js +0 -44
- package/dist/fix-language-codes.spec.js.map +0 -1
- package/dist/fixRelatorTerms.spec.js +0 -51
- package/dist/fixRelatorTerms.spec.js.map +0 -1
- package/dist/fixed-fields.spec.js +0 -140
- package/dist/fixed-fields.spec.js.map +0 -1
- package/dist/identical-fields.spec.js +0 -99
- package/dist/identical-fields.spec.js.map +0 -1
- package/dist/indicator-fixes.spec.js +0 -51
- package/dist/indicator-fixes.spec.js.map +0 -1
- package/dist/isbn-issn.spec.js +0 -595
- package/dist/isbn-issn.spec.js.map +0 -1
- package/dist/item-language.spec.js +0 -306
- package/dist/item-language.spec.js.map +0 -1
- package/dist/melindaCustomMergeFields.json +0 -5120
- package/dist/merge-fields.spec.js +0 -51
- package/dist/merge-fields.spec.js.map +0 -1
- package/dist/mergeField500Lisapainokset.spec.js +0 -51
- package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
- package/dist/mergeRelatorTermFields.spec.js +0 -51
- package/dist/mergeRelatorTermFields.spec.js.map +0 -1
- package/dist/modernize-502.spec.js +0 -49
- package/dist/modernize-502.spec.js.map +0 -1
- package/dist/multiple-subfield-0.spec.js +0 -51
- package/dist/multiple-subfield-0.spec.js.map +0 -1
- package/dist/non-breaking-space.spec.js +0 -42
- package/dist/non-breaking-space.spec.js.map +0 -1
- package/dist/normalize-dashes.spec.js +0 -51
- package/dist/normalize-dashes.spec.js.map +0 -1
- package/dist/normalize-identifiers.spec.js +0 -51
- package/dist/normalize-identifiers.spec.js.map +0 -1
- package/dist/normalize-qualifying-information.spec.js +0 -51
- package/dist/normalize-qualifying-information.spec.js.map +0 -1
- package/dist/normalize-utf8-diacritics.spec.js +0 -51
- package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
- package/dist/punctuation.spec.js +0 -51
- package/dist/punctuation.spec.js.map +0 -1
- package/dist/punctuation2.spec.js +0 -51
- package/dist/punctuation2.spec.js.map +0 -1
- package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
- package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
- package/dist/removeDuplicateDataFields.spec.js +0 -51
- package/dist/removeDuplicateDataFields.spec.js.map +0 -1
- package/dist/removeInferiorDataFields.spec.js +0 -51
- package/dist/removeInferiorDataFields.spec.js.map +0 -1
- package/dist/resolvable-ext-references-melinda.spec.js +0 -166
- package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
- package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
- package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
- package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
- package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
- package/dist/sort-tags.spec.js +0 -207
- package/dist/sort-tags.spec.js.map +0 -1
- package/dist/sortFields.spec.js +0 -51
- package/dist/sortFields.spec.js.map +0 -1
- package/dist/sortRelatorTerms.spec.js +0 -51
- package/dist/sortRelatorTerms.spec.js.map +0 -1
- package/dist/sortSubfields.spec.js +0 -52
- package/dist/sortSubfields.spec.js.map +0 -1
- package/dist/stripPunctuation.spec.js +0 -51
- package/dist/stripPunctuation.spec.js.map +0 -1
- package/dist/subfield-exclusion.spec.js +0 -523
- package/dist/subfield-exclusion.spec.js.map +0 -1
- package/dist/subfieldValueNormalizations.spec.js +0 -51
- package/dist/subfieldValueNormalizations.spec.js.map +0 -1
- package/dist/sync-007-and-300.spec.js +0 -51
- package/dist/sync-007-and-300.spec.js.map +0 -1
- package/dist/translate-terms.spec.js +0 -51
- package/dist/translate-terms.spec.js.map +0 -1
- package/dist/typeOfDate-008.spec.js +0 -47
- package/dist/typeOfDate-008.spec.js.map +0 -1
- package/dist/unicode-decomposition.spec.js +0 -91
- package/dist/unicode-decomposition.spec.js.map +0 -1
- package/dist/update-field-540.spec.js +0 -51
- package/dist/update-field-540.spec.js.map +0 -1
- package/dist/urn.spec.js +0 -52
- package/dist/urn.spec.js.map +0 -1
- package/src/melindaCustomMergeFields.json +0 -5120
- package/src/translate-terms.spec.js +0 -52
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import chaiAsPromised from 'chai-as-promised';
|
|
1
|
+
import assert from 'node:assert';
|
|
3
2
|
import {MarcRecord} from '@natlibfi/marc-record';
|
|
4
|
-
import validatorFactory from '../src/ending-punctuation';
|
|
3
|
+
import validatorFactory from '../src/ending-punctuation.js';
|
|
4
|
+
import {describe, it} from 'node:test';
|
|
5
|
+
|
|
5
6
|
|
|
6
|
-
const {expect} = chai;
|
|
7
|
-
chai.use(chaiAsPromised);
|
|
8
7
|
|
|
9
8
|
// Factory validation
|
|
10
9
|
describe('ending-punctuation', () => {
|
|
@@ -18,10 +17,18 @@ describe('ending-punctuation', () => {
|
|
|
18
17
|
ind1: ' ',
|
|
19
18
|
ind2: ' ',
|
|
20
19
|
subfields: [
|
|
21
|
-
{code: 'a', value: 'Elämäni ja tutkimusretkeni /
|
|
20
|
+
{code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
|
|
22
21
|
{code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola.'},
|
|
23
22
|
{code: '6', value: 'FOO'}
|
|
24
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
|
+
]
|
|
25
32
|
}, {
|
|
26
33
|
tag: '337', // Range 336-338
|
|
27
34
|
ind1: ' ',
|
|
@@ -35,7 +42,18 @@ describe('ending-punctuation', () => {
|
|
|
35
42
|
tag: '500', // Range 500-509
|
|
36
43
|
ind1: ' ',
|
|
37
44
|
ind2: ' ',
|
|
38
|
-
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".'}]
|
|
39
57
|
}
|
|
40
58
|
]
|
|
41
59
|
});
|
|
@@ -48,9 +66,17 @@ describe('ending-punctuation', () => {
|
|
|
48
66
|
ind1: ' ',
|
|
49
67
|
ind2: ' ',
|
|
50
68
|
subfields: [
|
|
51
|
-
{code: 'a', value: 'Elämäni ja tutkimusretkeni /
|
|
69
|
+
{code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
|
|
52
70
|
{code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola'},
|
|
53
|
-
{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.)'}
|
|
54
80
|
]
|
|
55
81
|
}, {
|
|
56
82
|
tag: '337',
|
|
@@ -58,14 +84,25 @@ describe('ending-punctuation', () => {
|
|
|
58
84
|
ind2: ' ',
|
|
59
85
|
subfields: [
|
|
60
86
|
{code: 'a', value: 'käytettävissä ilman laitetta'},
|
|
61
|
-
{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?!?)
|
|
62
88
|
{code: '2', value: 'rdamedia'}
|
|
63
89
|
]
|
|
64
90
|
}, {
|
|
65
91
|
tag: '500',
|
|
66
92
|
ind1: ' ',
|
|
67
93
|
ind2: ' ',
|
|
68
|
-
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"'}]
|
|
69
106
|
}
|
|
70
107
|
]
|
|
71
108
|
});
|
|
@@ -77,24 +114,43 @@ describe('ending-punctuation', () => {
|
|
|
77
114
|
ind1: ' ',
|
|
78
115
|
ind2: ' ',
|
|
79
116
|
subfields: [
|
|
80
|
-
{code: 'a', value: 'Elämäni ja tutkimusretkeni /
|
|
117
|
+
{code: 'a', value: 'Elämäni ja tutkimusretkeni /'},
|
|
81
118
|
{code: 'c', value: 'Roald Amundsen ; suomentanut Sulo Veikko Pekkola'},
|
|
82
119
|
{code: '6', value: 'FOO'}
|
|
83
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
|
+
]
|
|
84
129
|
}, {
|
|
85
130
|
tag: '337',
|
|
86
131
|
ind1: ' ',
|
|
87
132
|
ind2: ' ',
|
|
88
133
|
subfields: [
|
|
89
134
|
{code: 'a', value: 'käytettävissä ilman laitetta'},
|
|
90
|
-
{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?)
|
|
91
136
|
{code: '2', value: 'rdamedia'}
|
|
92
137
|
]
|
|
93
138
|
}, {
|
|
94
139
|
tag: '500',
|
|
95
140
|
ind1: ' ',
|
|
96
141
|
ind2: ' ',
|
|
97
|
-
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"'}]
|
|
98
154
|
}
|
|
99
155
|
]
|
|
100
156
|
});
|
|
@@ -102,14 +158,15 @@ describe('ending-punctuation', () => {
|
|
|
102
158
|
it('Finds the record valid', async () => {
|
|
103
159
|
const validator = await validatorFactory();
|
|
104
160
|
const result = await validator.validate(recordValid);
|
|
105
|
-
|
|
161
|
+
//console.info(JSON.stringify(result));
|
|
162
|
+
assert.equal(result.valid, true);
|
|
106
163
|
});
|
|
107
164
|
|
|
108
165
|
it('Finds the record invalid', async () => {
|
|
109
166
|
const validator = await validatorFactory();
|
|
110
167
|
const result = await validator.validate(recordInvalid);
|
|
111
|
-
|
|
112
|
-
message: ['Field 245
|
|
168
|
+
assert.deepEqual(result, {
|
|
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 \'"\''],
|
|
113
170
|
valid: false
|
|
114
171
|
});
|
|
115
172
|
});
|
|
@@ -117,12 +174,13 @@ describe('ending-punctuation', () => {
|
|
|
117
174
|
it('Repairs the invalid record', async () => {
|
|
118
175
|
const validator = await validatorFactory();
|
|
119
176
|
const result = await validator.fix(recordBroken);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
message: ['Field 245
|
|
123
|
-
fix: ['Field 245 - Added punctuation to $c', 'Field 500 - Removed
|
|
177
|
+
|
|
178
|
+
assert.deepEqual(result, {
|
|
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'],
|
|
124
181
|
valid: false
|
|
125
182
|
});
|
|
183
|
+
assert.equal(recordBroken.equalsTo(recordValid), true);
|
|
126
184
|
});
|
|
127
185
|
});
|
|
128
186
|
|
|
@@ -161,13 +219,13 @@ describe('ending-punctuation', () => {
|
|
|
161
219
|
it('Finds record valid - Punc $b', async () => {
|
|
162
220
|
const validator = await validatorFactory();
|
|
163
221
|
const result = await validator.validate(recordValid);
|
|
164
|
-
|
|
222
|
+
assert.equal(result.valid, true);
|
|
165
223
|
});
|
|
166
224
|
|
|
167
225
|
it('Finds record valid - Only $a without punc', async () => {
|
|
168
226
|
const validator = await validatorFactory();
|
|
169
227
|
const result = await validator.validate(recordValidOnlyA);
|
|
170
|
-
|
|
228
|
+
assert.equal(result.valid, true);
|
|
171
229
|
});
|
|
172
230
|
|
|
173
231
|
// Invalid tests
|
|
@@ -201,8 +259,8 @@ describe('ending-punctuation', () => {
|
|
|
201
259
|
it('Finds record invalid - No punc $b', async () => {
|
|
202
260
|
const validator = await validatorFactory();
|
|
203
261
|
const result = await validator.validate(recordInvalid);
|
|
204
|
-
|
|
205
|
-
message: ['Field 036
|
|
262
|
+
assert.deepEqual(result, {
|
|
263
|
+
message: ['Field 036 requires ending punctuation, ends in \'e\''],
|
|
206
264
|
valid: false
|
|
207
265
|
});
|
|
208
266
|
});
|
|
@@ -210,8 +268,8 @@ describe('ending-punctuation', () => {
|
|
|
210
268
|
it('Finds record invalid - Only $a with punc', async () => {
|
|
211
269
|
const validator = await validatorFactory();
|
|
212
270
|
const result = await validator.validate(recordInvalidOnlyA);
|
|
213
|
-
|
|
214
|
-
message: ['Field 036 has
|
|
271
|
+
assert.deepEqual(result, {
|
|
272
|
+
message: ['Field 036 has unwanted ending punctuation \'.\''],
|
|
215
273
|
valid: false
|
|
216
274
|
});
|
|
217
275
|
});
|
|
@@ -220,9 +278,9 @@ describe('ending-punctuation', () => {
|
|
|
220
278
|
it('Repairs the invalid record - Add punc $b', async () => {
|
|
221
279
|
const validator = await validatorFactory();
|
|
222
280
|
const result = await validator.fix(recordInvalid);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
message: ['Field 036
|
|
281
|
+
assert.equal(recordInvalid.equalsTo(recordValid), true);
|
|
282
|
+
assert.deepEqual(result, {
|
|
283
|
+
message: ['Field 036 requires ending punctuation, ends in \'e\''],
|
|
226
284
|
fix: ['Field 036 - Added punctuation to $b'],
|
|
227
285
|
valid: false
|
|
228
286
|
});
|
|
@@ -231,9 +289,9 @@ describe('ending-punctuation', () => {
|
|
|
231
289
|
it('Repairs the invalid record - Removes punc $a (register)', async () => {
|
|
232
290
|
const validator = await validatorFactory();
|
|
233
291
|
const result = await validator.fix(recordInvalidOnlyA);
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
message: ['Field 036 has
|
|
292
|
+
assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
|
|
293
|
+
assert.deepEqual(result, {
|
|
294
|
+
message: ['Field 036 has unwanted ending punctuation \'.\''],
|
|
237
295
|
fix: ['Field 036 - Removed punctuation from $a'],
|
|
238
296
|
valid: false
|
|
239
297
|
});
|
|
@@ -291,19 +349,19 @@ describe('ending-punctuation', () => {
|
|
|
291
349
|
it('Finds record valid - Punc $a', async () => {
|
|
292
350
|
const validator = await validatorFactory();
|
|
293
351
|
const result = await validator.validate(recordValidOnlyA);
|
|
294
|
-
|
|
352
|
+
assert.equal(result.valid, true);
|
|
295
353
|
});
|
|
296
354
|
|
|
297
355
|
it('Finds record valid - Punc $p', async () => {
|
|
298
356
|
const validator = await validatorFactory();
|
|
299
357
|
const result = await validator.validate(recordValidMultiple);
|
|
300
|
-
|
|
358
|
+
assert.equal(result.valid, true);
|
|
301
359
|
});
|
|
302
360
|
|
|
303
361
|
it('Finds record valid - Punc $a without $y', async () => {
|
|
304
362
|
const validator = await validatorFactory();
|
|
305
363
|
const result = await validator.validate(recordValidWithoutY);
|
|
306
|
-
|
|
364
|
+
assert.equal(result.valid, true);
|
|
307
365
|
});
|
|
308
366
|
|
|
309
367
|
// Invalid tests
|
|
@@ -385,8 +443,8 @@ describe('ending-punctuation', () => {
|
|
|
385
443
|
it('Finds record invalid - No punc at $a (only before $y)', async () => {
|
|
386
444
|
const validator = await validatorFactory();
|
|
387
445
|
const result = await validator.validate(recordInvalidOnlyAMissingA);
|
|
388
|
-
|
|
389
|
-
message: ['Field 242
|
|
446
|
+
assert.deepEqual(result, {
|
|
447
|
+
message: ['Field 242 requires ending punctuation, ends in \'t\''],
|
|
390
448
|
valid: false
|
|
391
449
|
});
|
|
392
450
|
});
|
|
@@ -394,8 +452,8 @@ describe('ending-punctuation', () => {
|
|
|
394
452
|
it('Finds record invalid - Punc at $y (Language field)', async () => { // $y is also checked as rule is explicit
|
|
395
453
|
const validator = await validatorFactory();
|
|
396
454
|
const result = await validator.validate(recordInvalidOnlyAPuncY);
|
|
397
|
-
|
|
398
|
-
message: ['Field 242 has
|
|
455
|
+
assert.deepEqual(result, {
|
|
456
|
+
message: ['Field 242 has unwanted ending punctuation \'.\''],
|
|
399
457
|
valid: false
|
|
400
458
|
});
|
|
401
459
|
});
|
|
@@ -403,8 +461,8 @@ describe('ending-punctuation', () => {
|
|
|
403
461
|
it('Finds record invalid - No punc at $a & punc $y', async () => { // $y is also checked as rule is explicit
|
|
404
462
|
const validator = await validatorFactory();
|
|
405
463
|
const result = await validator.validate(recordInvalidOnlyAMissingAPuncY);
|
|
406
|
-
|
|
407
|
-
message: ['Field 242 has
|
|
464
|
+
assert.deepEqual(result, {
|
|
465
|
+
message: ['Field 242 has unwanted ending punctuation \'.\'', 'Field 242 requires ending punctuation, ends in \'t\''],
|
|
408
466
|
valid: false
|
|
409
467
|
});
|
|
410
468
|
});
|
|
@@ -412,8 +470,8 @@ describe('ending-punctuation', () => {
|
|
|
412
470
|
it('Finds record invalid - No punc $p (last before $y)', async () => {
|
|
413
471
|
const validator = await validatorFactory();
|
|
414
472
|
const result = await validator.validate(recordValidMultipleMissingP);
|
|
415
|
-
|
|
416
|
-
message: ['Field 242
|
|
473
|
+
assert.deepEqual(result, {
|
|
474
|
+
message: ['Field 242 requires ending punctuation, ends in \'y\''],
|
|
417
475
|
valid: false
|
|
418
476
|
});
|
|
419
477
|
});
|
|
@@ -421,8 +479,8 @@ describe('ending-punctuation', () => {
|
|
|
421
479
|
it('Finds record invalid - No punc $a (only)', async () => {
|
|
422
480
|
const validator = await validatorFactory();
|
|
423
481
|
const result = await validator.validate(recordValidWithoutYMissingA);
|
|
424
|
-
|
|
425
|
-
message: ['Field 242
|
|
482
|
+
assert.deepEqual(result, {
|
|
483
|
+
message: ['Field 242 requires ending punctuation, ends in \'t\''],
|
|
426
484
|
valid: false
|
|
427
485
|
});
|
|
428
486
|
});
|
|
@@ -431,9 +489,9 @@ describe('ending-punctuation', () => {
|
|
|
431
489
|
it('Repairs the invalid record - Add punc $a', async () => {
|
|
432
490
|
const validator = await validatorFactory();
|
|
433
491
|
const result = await validator.fix(recordInvalidOnlyAMissingA);
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
message: ['Field 242
|
|
492
|
+
assert.equal(recordInvalidOnlyAMissingA.equalsTo(recordValidOnlyA), true);
|
|
493
|
+
assert.deepEqual(result, {
|
|
494
|
+
message: ['Field 242 requires ending punctuation, ends in \'t\''],
|
|
437
495
|
fix: ['Field 242 - Added punctuation to $a'],
|
|
438
496
|
valid: false
|
|
439
497
|
});
|
|
@@ -442,9 +500,9 @@ describe('ending-punctuation', () => {
|
|
|
442
500
|
it('Repairs the invalid record - Remove punc $y (Language field)', async () => {
|
|
443
501
|
const validator = await validatorFactory();
|
|
444
502
|
const result = await validator.fix(recordInvalidOnlyAPuncY);
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
message: ['Field 242 has
|
|
503
|
+
assert.equal(recordInvalidOnlyAPuncY.equalsTo(recordValidOnlyA), true);
|
|
504
|
+
assert.deepEqual(result, {
|
|
505
|
+
message: ['Field 242 has unwanted ending punctuation \'.\''],
|
|
448
506
|
fix: ['Field 242 - Removed punctuation from $y'],
|
|
449
507
|
valid: false
|
|
450
508
|
});
|
|
@@ -453,9 +511,9 @@ describe('ending-punctuation', () => {
|
|
|
453
511
|
it('Repairs the invalid record - Add punc $a & remove punc $y (Language field)', async () => {
|
|
454
512
|
const validator = await validatorFactory();
|
|
455
513
|
const result = await validator.fix(recordInvalidOnlyAMissingAPuncY);
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
message: ['Field 242 has
|
|
514
|
+
assert.equal(recordInvalidOnlyAMissingAPuncY.equalsTo(recordValidOnlyA), true);
|
|
515
|
+
assert.deepEqual(result, {
|
|
516
|
+
message: ['Field 242 has unwanted ending punctuation \'.\'', 'Field 242 requires ending punctuation, ends in \'t\''],
|
|
459
517
|
fix: ['Field 242 - Removed punctuation from $y', 'Field 242 - Added punctuation to $a'],
|
|
460
518
|
valid: false
|
|
461
519
|
});
|
|
@@ -464,9 +522,9 @@ describe('ending-punctuation', () => {
|
|
|
464
522
|
it('Repairs the invalid record - Add punc $p', async () => {
|
|
465
523
|
const validator = await validatorFactory();
|
|
466
524
|
const result = await validator.fix(recordValidMultipleMissingP);
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
message: ['Field 242
|
|
525
|
+
assert.equal(recordValidMultipleMissingP.equalsTo(recordValidMultiple), true);
|
|
526
|
+
assert.deepEqual(result, {
|
|
527
|
+
message: ['Field 242 requires ending punctuation, ends in \'y\''],
|
|
470
528
|
fix: ['Field 242 - Added punctuation to $p'],
|
|
471
529
|
valid: false
|
|
472
530
|
});
|
|
@@ -475,9 +533,9 @@ describe('ending-punctuation', () => {
|
|
|
475
533
|
it('Repairs the invalid record - Add punc $a', async () => {
|
|
476
534
|
const validator = await validatorFactory();
|
|
477
535
|
const result = await validator.fix(recordValidWithoutYMissingA);
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
message: ['Field 242
|
|
536
|
+
assert.equal(recordValidWithoutYMissingA.equalsTo(recordValidWithoutY), true);
|
|
537
|
+
assert.deepEqual(result, {
|
|
538
|
+
message: ['Field 242 requires ending punctuation, ends in \'t\''],
|
|
481
539
|
fix: ['Field 242 - Added punctuation to $a'],
|
|
482
540
|
valid: false
|
|
483
541
|
});
|
|
@@ -540,19 +598,19 @@ describe('ending-punctuation', () => {
|
|
|
540
598
|
it('Finds record valid - Punc $c', async () => {
|
|
541
599
|
const validator = await validatorFactory();
|
|
542
600
|
const result = await validator.validate(recordValidEndC);
|
|
543
|
-
|
|
601
|
+
assert.equal(result.valid, true);
|
|
544
602
|
});
|
|
545
603
|
|
|
546
604
|
it('Finds record valid - Punc char $g (after $c)', async () => {
|
|
547
605
|
const validator = await validatorFactory();
|
|
548
606
|
const result = await validator.validate(recordValidEndG);
|
|
549
|
-
|
|
607
|
+
assert.equal(result.valid, true);
|
|
550
608
|
});
|
|
551
609
|
|
|
552
610
|
it('Finds record valid - No punc $b', async () => {
|
|
553
611
|
const validator = await validatorFactory();
|
|
554
612
|
const result = await validator.validate(recordValidEndB);
|
|
555
|
-
|
|
613
|
+
assert.equal(result.valid, true);
|
|
556
614
|
});
|
|
557
615
|
|
|
558
616
|
// Invalid tests
|
|
@@ -592,8 +650,8 @@ describe('ending-punctuation', () => {
|
|
|
592
650
|
it('Finds record invalid', async () => {
|
|
593
651
|
const validator = await validatorFactory();
|
|
594
652
|
const result = await validator.validate(recordInvalidEndC);
|
|
595
|
-
|
|
596
|
-
message: ['Field 260
|
|
653
|
+
assert.deepEqual(result, {
|
|
654
|
+
message: ['Field 260 requires ending punctuation, ends in \'2\''],
|
|
597
655
|
valid: false
|
|
598
656
|
});
|
|
599
657
|
});
|
|
@@ -601,8 +659,8 @@ describe('ending-punctuation', () => {
|
|
|
601
659
|
it('Finds record invalid', async () => {
|
|
602
660
|
const validator = await validatorFactory();
|
|
603
661
|
const result = await validator.validate(recordInvalidEndGDouble);
|
|
604
|
-
|
|
605
|
-
message: ['Field 260 has
|
|
662
|
+
assert.deepEqual(result, {
|
|
663
|
+
message: ['Field 260 has an extra dot after \')\''],
|
|
606
664
|
valid: false
|
|
607
665
|
});
|
|
608
666
|
});
|
|
@@ -611,9 +669,9 @@ describe('ending-punctuation', () => {
|
|
|
611
669
|
it('Repairs the invalid record - Add punc $c', async () => {
|
|
612
670
|
const validator = await validatorFactory();
|
|
613
671
|
const result = await validator.fix(recordInvalidEndC);
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
message: ['Field 260
|
|
672
|
+
assert.equal(recordInvalidEndC.equalsTo(recordValidEndC), true);
|
|
673
|
+
assert.deepEqual(result, {
|
|
674
|
+
message: ['Field 260 requires ending punctuation, ends in \'2\''],
|
|
617
675
|
fix: ['Field 260 - Added punctuation to $c'],
|
|
618
676
|
valid: false
|
|
619
677
|
});
|
|
@@ -622,10 +680,10 @@ describe('ending-punctuation', () => {
|
|
|
622
680
|
it('Repairs the invalid record - Remove double punc $g', async () => {
|
|
623
681
|
const validator = await validatorFactory();
|
|
624
682
|
const result = await validator.fix(recordInvalidEndGDouble);
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
message: ['Field 260 has
|
|
628
|
-
fix: ['Field 260 - Removed
|
|
683
|
+
assert.equal(recordInvalidEndGDouble.equalsTo(recordValidEndG), true);
|
|
684
|
+
assert.deepEqual(result, {
|
|
685
|
+
message: ['Field 260 has an extra dot after \')\''],
|
|
686
|
+
fix: ['Field 260 - Removed dot after punctuation from $g'],
|
|
629
687
|
valid: false
|
|
630
688
|
});
|
|
631
689
|
});
|
|
@@ -711,25 +769,25 @@ describe('ending-punctuation', () => {
|
|
|
711
769
|
it('Finds record valid - Ind2 = 1, $c 1995-2006.', async () => {
|
|
712
770
|
const validator = await validatorFactory();
|
|
713
771
|
const result = await validator.validate(recordValidInd2v1);
|
|
714
|
-
|
|
772
|
+
assert.equal(result.valid, true);
|
|
715
773
|
});
|
|
716
774
|
|
|
717
775
|
it('Finds record valid - Ind2 = 1, $c 1995-', async () => {
|
|
718
776
|
const validator = await validatorFactory();
|
|
719
777
|
const result = await validator.validate(recordValidInd2v1Short);
|
|
720
|
-
|
|
778
|
+
assert.equal(result.valid, true);
|
|
721
779
|
});
|
|
722
780
|
|
|
723
781
|
it('Finds record valid - Ind2 = 2, no $c', async () => {
|
|
724
782
|
const validator = await validatorFactory();
|
|
725
783
|
const result = await validator.validate(recordValidInd2v2WithoutC);
|
|
726
|
-
|
|
784
|
+
assert.equal(result.valid, true);
|
|
727
785
|
});
|
|
728
786
|
|
|
729
787
|
it('Finds record valid - Ind2 = 4, copyright', async () => {
|
|
730
788
|
const validator = await validatorFactory();
|
|
731
789
|
const result = await validator.validate(recordValidCopyright);
|
|
732
|
-
|
|
790
|
+
assert.equal(result.valid, true);
|
|
733
791
|
});
|
|
734
792
|
|
|
735
793
|
const recordInvalidInd2v1 = new MarcRecord({
|
|
@@ -767,8 +825,8 @@ describe('ending-punctuation', () => {
|
|
|
767
825
|
it('Finds record invalid - No punc $c', async () => {
|
|
768
826
|
const validator = await validatorFactory();
|
|
769
827
|
const result = await validator.validate(recordInvalidInd2v1);
|
|
770
|
-
|
|
771
|
-
message: ['Field 264
|
|
828
|
+
assert.deepEqual(result, {
|
|
829
|
+
message: ['Field 264 requires ending punctuation, ends in \'6\''],
|
|
772
830
|
valid: false
|
|
773
831
|
});
|
|
774
832
|
});
|
|
@@ -776,8 +834,8 @@ describe('ending-punctuation', () => {
|
|
|
776
834
|
it('Finds record invalid - Ind2 = 4, copyright, extra punc $c', async () => {
|
|
777
835
|
const validator = await validatorFactory();
|
|
778
836
|
const result = await validator.validate(recordInvalidCopyrightCExtra);
|
|
779
|
-
|
|
780
|
-
message: ['Field 264 has
|
|
837
|
+
assert.deepEqual(result, {
|
|
838
|
+
message: ['Field 264 has unwanted ending punctuation \'.\''],
|
|
781
839
|
valid: false
|
|
782
840
|
});
|
|
783
841
|
});
|
|
@@ -786,9 +844,9 @@ describe('ending-punctuation', () => {
|
|
|
786
844
|
it('Repairs the invalid record - Add punc $c', async () => {
|
|
787
845
|
const validator = await validatorFactory();
|
|
788
846
|
const result = await validator.fix(recordInvalidInd2v1);
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
message: ['Field 264
|
|
847
|
+
assert.equal(recordInvalidInd2v1.equalsTo(recordValidInd2v1), true);
|
|
848
|
+
assert.deepEqual(result, {
|
|
849
|
+
message: ['Field 264 requires ending punctuation, ends in \'6\''],
|
|
792
850
|
fix: ['Field 264 - Added punctuation to $c'],
|
|
793
851
|
valid: false
|
|
794
852
|
});
|
|
@@ -797,9 +855,9 @@ describe('ending-punctuation', () => {
|
|
|
797
855
|
it('Repairs the invalid record - Remove punc $c ($c has ©, should not have punc)', async () => {
|
|
798
856
|
const validator = await validatorFactory();
|
|
799
857
|
const result = await validator.fix(recordInvalidCopyrightCExtra);
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
message: ['Field 264 has
|
|
858
|
+
assert.equal(recordInvalidCopyrightCExtra.equalsTo(recordValidCopyright), true);
|
|
859
|
+
assert.deepEqual(result, {
|
|
860
|
+
message: ['Field 264 has unwanted ending punctuation \'.\''],
|
|
803
861
|
fix: ['Field 264 - Removed punctuation from $c'],
|
|
804
862
|
valid: false
|
|
805
863
|
});
|
|
@@ -891,31 +949,31 @@ describe('ending-punctuation', () => {
|
|
|
891
949
|
it('Finds record valid - Punc $a (only)', async () => {
|
|
892
950
|
const validator = await validatorFactory();
|
|
893
951
|
const result = await validator.validate(recordValidA);
|
|
894
|
-
|
|
952
|
+
assert.equal(result.valid, true);
|
|
895
953
|
});
|
|
896
954
|
|
|
897
955
|
it('Finds record valid - Punc $a (last) & punc $b (mandatory)', async () => {
|
|
898
956
|
const validator = await validatorFactory();
|
|
899
957
|
const result = await validator.validate(recordValidAB);
|
|
900
|
-
|
|
958
|
+
assert.equal(result.valid, true);
|
|
901
959
|
});
|
|
902
960
|
|
|
903
961
|
it('Finds record valid - Punc $d (last of two)', async () => {
|
|
904
962
|
const validator = await validatorFactory();
|
|
905
963
|
const result = await validator.validate(recordValidDD);
|
|
906
|
-
|
|
964
|
+
assert.equal(result.valid, true);
|
|
907
965
|
});
|
|
908
966
|
|
|
909
967
|
it('Finds record valid - Punc $d (last of two) followed by $g', async () => {
|
|
910
968
|
const validator = await validatorFactory();
|
|
911
969
|
const result = await validator.validate(recordValidComplex);
|
|
912
|
-
|
|
970
|
+
assert.equal(result.valid, true);
|
|
913
971
|
});
|
|
914
972
|
|
|
915
973
|
it('Finds record valid - No punc (not $b, nor from list)', async () => {
|
|
916
974
|
const validator = await validatorFactory();
|
|
917
975
|
const result = await validator.validate(recordValidJ2);
|
|
918
|
-
|
|
976
|
+
assert.equal(result.valid, true);
|
|
919
977
|
});
|
|
920
978
|
|
|
921
979
|
// Invalid tests
|
|
@@ -998,8 +1056,8 @@ describe('ending-punctuation', () => {
|
|
|
998
1056
|
it('Finds record invalid - No punc $a (only)', async () => {
|
|
999
1057
|
const validator = await validatorFactory();
|
|
1000
1058
|
const result = await validator.validate(recordInvalidA);
|
|
1001
|
-
|
|
1002
|
-
message: ['Field 340
|
|
1059
|
+
assert.deepEqual(result, {
|
|
1060
|
+
message: ['Field 340 requires ending punctuation, ends in \'e\''],
|
|
1003
1061
|
valid: false
|
|
1004
1062
|
});
|
|
1005
1063
|
});
|
|
@@ -1007,8 +1065,8 @@ describe('ending-punctuation', () => {
|
|
|
1007
1065
|
it('Finds record invalid - No punc $a (last)', async () => {
|
|
1008
1066
|
const validator = await validatorFactory();
|
|
1009
1067
|
const result = await validator.validate(recordInvalidAMissingB);
|
|
1010
|
-
|
|
1011
|
-
message: ['Field 340
|
|
1068
|
+
assert.deepEqual(result, {
|
|
1069
|
+
message: ['Field 340 requires ending punctuation, ends in \'t\''],
|
|
1012
1070
|
valid: false
|
|
1013
1071
|
});
|
|
1014
1072
|
});
|
|
@@ -1016,8 +1074,8 @@ describe('ending-punctuation', () => {
|
|
|
1016
1074
|
it('Finds record invalid - No punc $b (mandatory)', async () => {
|
|
1017
1075
|
const validator = await validatorFactory();
|
|
1018
1076
|
const result = await validator.validate(recordInvalidABMissing);
|
|
1019
|
-
|
|
1020
|
-
message: ['Field 340
|
|
1077
|
+
assert.deepEqual(result, {
|
|
1078
|
+
message: ['Field 340 requires ending punctuation, ends in \'m\''],
|
|
1021
1079
|
valid: false
|
|
1022
1080
|
});
|
|
1023
1081
|
});
|
|
@@ -1025,8 +1083,8 @@ describe('ending-punctuation', () => {
|
|
|
1025
1083
|
it('Finds record invalid - No punc $d (last of two)', async () => {
|
|
1026
1084
|
const validator = await validatorFactory();
|
|
1027
1085
|
const result = await validator.validate(recordInvalidDDMissing);
|
|
1028
|
-
|
|
1029
|
-
message: ['Field 340
|
|
1086
|
+
assert.deepEqual(result, {
|
|
1087
|
+
message: ['Field 340 requires ending punctuation, ends in \'d\''],
|
|
1030
1088
|
valid: false
|
|
1031
1089
|
});
|
|
1032
1090
|
});
|
|
@@ -1034,8 +1092,8 @@ describe('ending-punctuation', () => {
|
|
|
1034
1092
|
it('Finds record invalid - No punc $d (last of two) followed by $g', async () => {
|
|
1035
1093
|
const validator = await validatorFactory();
|
|
1036
1094
|
const result = await validator.validate(recordInvalidComplexDMissing);
|
|
1037
|
-
|
|
1038
|
-
message: ['Field 340
|
|
1095
|
+
assert.deepEqual(result, {
|
|
1096
|
+
message: ['Field 340 requires ending punctuation, ends in \'e\''],
|
|
1039
1097
|
valid: false
|
|
1040
1098
|
});
|
|
1041
1099
|
});
|
|
@@ -1044,9 +1102,9 @@ describe('ending-punctuation', () => {
|
|
|
1044
1102
|
it('Repairs the invalid record - Add punc $a (only)', async () => {
|
|
1045
1103
|
const validator = await validatorFactory();
|
|
1046
1104
|
const result = await validator.fix(recordInvalidA);
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
message: ['Field 340
|
|
1105
|
+
assert.equal(recordInvalidA.equalsTo(recordInvalidA), true);
|
|
1106
|
+
assert.deepEqual(result, {
|
|
1107
|
+
message: ['Field 340 requires ending punctuation, ends in \'e\''],
|
|
1050
1108
|
fix: ['Field 340 - Added punctuation to $a'],
|
|
1051
1109
|
valid: false
|
|
1052
1110
|
});
|
|
@@ -1055,9 +1113,9 @@ describe('ending-punctuation', () => {
|
|
|
1055
1113
|
it('Repairs the invalid record - Add punc $a (last)', async () => {
|
|
1056
1114
|
const validator = await validatorFactory();
|
|
1057
1115
|
const result = await validator.fix(recordInvalidAMissingB);
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
message: ['Field 340
|
|
1116
|
+
assert.equal(recordInvalidAMissingB.equalsTo(recordValidAB), true);
|
|
1117
|
+
assert.deepEqual(result, {
|
|
1118
|
+
message: ['Field 340 requires ending punctuation, ends in \'t\''],
|
|
1061
1119
|
fix: ['Field 340 - Added punctuation to $a'],
|
|
1062
1120
|
valid: false
|
|
1063
1121
|
});
|
|
@@ -1066,9 +1124,9 @@ describe('ending-punctuation', () => {
|
|
|
1066
1124
|
it('Repairs the invalid record - Add punc $b (mandatory)', async () => {
|
|
1067
1125
|
const validator = await validatorFactory();
|
|
1068
1126
|
const result = await validator.fix(recordInvalidABMissing);
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
message: ['Field 340
|
|
1127
|
+
assert.equal(recordInvalidABMissing.equalsTo(recordValidAB), true);
|
|
1128
|
+
assert.deepEqual(result, {
|
|
1129
|
+
message: ['Field 340 requires ending punctuation, ends in \'m\''],
|
|
1072
1130
|
fix: ['Field 340 - Added punctuation to $b'],
|
|
1073
1131
|
valid: false
|
|
1074
1132
|
});
|
|
@@ -1077,9 +1135,9 @@ describe('ending-punctuation', () => {
|
|
|
1077
1135
|
it('Repairs the invalid record - Add punc $d (last of two)', async () => {
|
|
1078
1136
|
const validator = await validatorFactory();
|
|
1079
1137
|
const result = await validator.fix(recordInvalidDDMissing);
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
message: ['Field 340
|
|
1138
|
+
assert.equal(recordInvalidDDMissing.equalsTo(recordValidDD), true);
|
|
1139
|
+
assert.deepEqual(result, {
|
|
1140
|
+
message: ['Field 340 requires ending punctuation, ends in \'d\''],
|
|
1083
1141
|
fix: ['Field 340 - Added punctuation to $d'],
|
|
1084
1142
|
valid: false
|
|
1085
1143
|
});
|
|
@@ -1088,9 +1146,9 @@ describe('ending-punctuation', () => {
|
|
|
1088
1146
|
it('Repairs the invalid record - Add punc $d (last of list)', async () => {
|
|
1089
1147
|
const validator = await validatorFactory();
|
|
1090
1148
|
const result = await validator.fix(recordInvalidComplexDMissing);
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
message: ['Field 340
|
|
1149
|
+
assert.equal(recordInvalidComplexDMissing.equalsTo(recordInvalidComplexDMissing), true);
|
|
1150
|
+
assert.deepEqual(result, {
|
|
1151
|
+
message: ['Field 340 requires ending punctuation, ends in \'e\''],
|
|
1094
1152
|
fix: ['Field 340 - Added punctuation to $d'],
|
|
1095
1153
|
valid: false
|
|
1096
1154
|
});
|
|
@@ -1145,19 +1203,19 @@ describe('ending-punctuation', () => {
|
|
|
1145
1203
|
it('Finds record valid - Punc $a (without $u)', async () => {
|
|
1146
1204
|
const validator = await validatorFactory();
|
|
1147
1205
|
const result = await validator.validate(recordValid);
|
|
1148
|
-
|
|
1206
|
+
assert.equal(result.valid, true);
|
|
1149
1207
|
});
|
|
1150
1208
|
|
|
1151
1209
|
it('Finds record valid - Punc $a (with $u) ', async () => {
|
|
1152
1210
|
const validator = await validatorFactory();
|
|
1153
1211
|
const result = await validator.validate(recordValidWithU);
|
|
1154
|
-
|
|
1212
|
+
assert.equal(result.valid, true);
|
|
1155
1213
|
});
|
|
1156
1214
|
|
|
1157
1215
|
it('Finds record valid - Punc $a & $u (punc at $u should be ignored) ', async () => {
|
|
1158
1216
|
const validator = await validatorFactory();
|
|
1159
1217
|
const result = await validator.validate(recordValidU);
|
|
1160
|
-
|
|
1218
|
+
assert.equal(result.valid, true);
|
|
1161
1219
|
});
|
|
1162
1220
|
|
|
1163
1221
|
// Invalid tests
|
|
@@ -1191,8 +1249,8 @@ describe('ending-punctuation', () => {
|
|
|
1191
1249
|
it('Finds record invalid - No punc $a (without $u)', async () => {
|
|
1192
1250
|
const validator = await validatorFactory();
|
|
1193
1251
|
const result = await validator.validate(recordInvalid);
|
|
1194
|
-
|
|
1195
|
-
message: ['Field 520
|
|
1252
|
+
assert.deepEqual(result, {
|
|
1253
|
+
message: ['Field 520 requires ending punctuation, ends in \'ö\''],
|
|
1196
1254
|
valid: false
|
|
1197
1255
|
});
|
|
1198
1256
|
});
|
|
@@ -1200,8 +1258,8 @@ describe('ending-punctuation', () => {
|
|
|
1200
1258
|
it('Finds record invalid - No punc $a (with $u)', async () => {
|
|
1201
1259
|
const validator = await validatorFactory();
|
|
1202
1260
|
const result = await validator.validate(recordInvalidWithU);
|
|
1203
|
-
|
|
1204
|
-
message: ['Field 520
|
|
1261
|
+
assert.deepEqual(result, {
|
|
1262
|
+
message: ['Field 520 requires ending punctuation, ends in \'i\''],
|
|
1205
1263
|
valid: false
|
|
1206
1264
|
});
|
|
1207
1265
|
});
|
|
@@ -1210,9 +1268,9 @@ describe('ending-punctuation', () => {
|
|
|
1210
1268
|
it('Repairs the invalid record - Add punc $a (only)', async () => {
|
|
1211
1269
|
const validator = await validatorFactory();
|
|
1212
1270
|
const result = await validator.fix(recordInvalid);
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
message: ['Field 520
|
|
1271
|
+
assert.equal(recordInvalid.equalsTo(recordValid), true);
|
|
1272
|
+
assert.deepEqual(result, {
|
|
1273
|
+
message: ['Field 520 requires ending punctuation, ends in \'ö\''],
|
|
1216
1274
|
fix: ['Field 520 - Added punctuation to $a'],
|
|
1217
1275
|
valid: false
|
|
1218
1276
|
});
|
|
@@ -1221,9 +1279,9 @@ describe('ending-punctuation', () => {
|
|
|
1221
1279
|
it('Repairs the invalid record - Add punc $a (last before $u)', async () => {
|
|
1222
1280
|
const validator = await validatorFactory();
|
|
1223
1281
|
const result = await validator.fix(recordInvalidWithU);
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
message: ['Field 520
|
|
1282
|
+
assert.equal(recordInvalidWithU.equalsTo(recordValidWithU), true);
|
|
1283
|
+
assert.deepEqual(result, {
|
|
1284
|
+
message: ['Field 520 requires ending punctuation, ends in \'i\''],
|
|
1227
1285
|
fix: ['Field 520 - Added punctuation to $a'],
|
|
1228
1286
|
valid: false
|
|
1229
1287
|
});
|
|
@@ -1282,19 +1340,19 @@ describe('ending-punctuation', () => {
|
|
|
1282
1340
|
it('Finds record valid - Punc $i (last before $u)', async () => {
|
|
1283
1341
|
const validator = await validatorFactory();
|
|
1284
1342
|
const result = await validator.validate(recordValid);
|
|
1285
|
-
|
|
1343
|
+
assert.equal(result.valid, true);
|
|
1286
1344
|
});
|
|
1287
1345
|
|
|
1288
1346
|
it('Finds record valid - Punc $i & punc $u ($u is URL, should pass)', async () => {
|
|
1289
1347
|
const validator = await validatorFactory();
|
|
1290
1348
|
const result = await validator.validate(recordValidPuncU);
|
|
1291
|
-
|
|
1349
|
+
assert.equal(result.valid, true);
|
|
1292
1350
|
});
|
|
1293
1351
|
|
|
1294
1352
|
it('Finds record valid - Punc $a (only)', async () => {
|
|
1295
1353
|
const validator = await validatorFactory();
|
|
1296
1354
|
const result = await validator.validate(recordValidOnlyA);
|
|
1297
|
-
|
|
1355
|
+
assert.equal(result.valid, true);
|
|
1298
1356
|
});
|
|
1299
1357
|
|
|
1300
1358
|
// Invalid tests
|
|
@@ -1345,8 +1403,8 @@ describe('ending-punctuation', () => {
|
|
|
1345
1403
|
it('Finds record invalid - No punc $i (last before $u)', async () => {
|
|
1346
1404
|
const validator = await validatorFactory();
|
|
1347
1405
|
const result = await validator.validate(recordInvalidMissingI);
|
|
1348
|
-
|
|
1349
|
-
message: ['Field 538
|
|
1406
|
+
assert.deepEqual(result, {
|
|
1407
|
+
message: ['Field 538 requires ending punctuation, ends in \'s\''],
|
|
1350
1408
|
valid: false
|
|
1351
1409
|
});
|
|
1352
1410
|
});
|
|
@@ -1354,8 +1412,8 @@ describe('ending-punctuation', () => {
|
|
|
1354
1412
|
it('Finds record invalid - Invalid punc $i (":" not valid punc mark, but this is according example...)', async () => {
|
|
1355
1413
|
const validator = await validatorFactory();
|
|
1356
1414
|
const result = await validator.validate(recordInvalidI);
|
|
1357
|
-
|
|
1358
|
-
message: ['Field 538
|
|
1415
|
+
assert.deepEqual(result, {
|
|
1416
|
+
message: ['Field 538 requires ending punctuation, ends in \':\''],
|
|
1359
1417
|
valid: false
|
|
1360
1418
|
});
|
|
1361
1419
|
});
|
|
@@ -1363,8 +1421,8 @@ describe('ending-punctuation', () => {
|
|
|
1363
1421
|
it('Finds record invalid - No punc $a (only)', async () => {
|
|
1364
1422
|
const validator = await validatorFactory();
|
|
1365
1423
|
const result = await validator.validate(recordInvalidOnlyA);
|
|
1366
|
-
|
|
1367
|
-
message: ['Field 538
|
|
1424
|
+
assert.deepEqual(result, {
|
|
1425
|
+
message: ['Field 538 requires ending punctuation, ends in \'e\''],
|
|
1368
1426
|
valid: false
|
|
1369
1427
|
});
|
|
1370
1428
|
});
|
|
@@ -1373,9 +1431,9 @@ describe('ending-punctuation', () => {
|
|
|
1373
1431
|
it('Repairs the invalid record - Add punc $i (last)', async () => {
|
|
1374
1432
|
const validator = await validatorFactory();
|
|
1375
1433
|
const result = await validator.fix(recordInvalidMissingI);
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
message: ['Field 538
|
|
1434
|
+
assert.equal(recordInvalidMissingI.equalsTo(recordValid), true);
|
|
1435
|
+
assert.deepEqual(result, {
|
|
1436
|
+
message: ['Field 538 requires ending punctuation, ends in \'s\''],
|
|
1379
1437
|
fix: ['Field 538 - Added punctuation to $i'],
|
|
1380
1438
|
valid: false
|
|
1381
1439
|
});
|
|
@@ -1384,9 +1442,9 @@ describe('ending-punctuation', () => {
|
|
|
1384
1442
|
it('Repairs the invalid record - Add punc $a (only)', async () => {
|
|
1385
1443
|
const validator = await validatorFactory();
|
|
1386
1444
|
const result = await validator.fix(recordInvalidOnlyA);
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
message: ['Field 538
|
|
1445
|
+
assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
|
|
1446
|
+
assert.deepEqual(result, {
|
|
1447
|
+
message: ['Field 538 requires ending punctuation, ends in \'e\''],
|
|
1390
1448
|
fix: ['Field 538 - Added punctuation to $a'],
|
|
1391
1449
|
valid: false
|
|
1392
1450
|
});
|
|
@@ -1427,13 +1485,13 @@ describe('ending-punctuation', () => {
|
|
|
1427
1485
|
it('Finds record valid - Punc $a (only)', async () => {
|
|
1428
1486
|
const validator = await validatorFactory();
|
|
1429
1487
|
const result = await validator.validate(recordValid);
|
|
1430
|
-
|
|
1488
|
+
assert.equal(result.valid, true);
|
|
1431
1489
|
});
|
|
1432
1490
|
|
|
1433
1491
|
it('Finds record valid - No punc $b (only data field)', async () => {
|
|
1434
1492
|
const validator = await validatorFactory();
|
|
1435
1493
|
const result = await validator.validate(recordValidWithoutA);
|
|
1436
|
-
|
|
1494
|
+
assert.equal(result.valid, true);
|
|
1437
1495
|
});
|
|
1438
1496
|
|
|
1439
1497
|
// Invalid tests
|
|
@@ -1467,8 +1525,8 @@ describe('ending-punctuation', () => {
|
|
|
1467
1525
|
it('Finds record invalid - No punc $a (only)', async () => {
|
|
1468
1526
|
const validator = await validatorFactory();
|
|
1469
1527
|
const result = await validator.validate(recordInvalid);
|
|
1470
|
-
|
|
1471
|
-
message: ['Field 567
|
|
1528
|
+
assert.deepEqual(result, {
|
|
1529
|
+
message: ['Field 567 requires ending punctuation, ends in \'s\''],
|
|
1472
1530
|
valid: false
|
|
1473
1531
|
});
|
|
1474
1532
|
});
|
|
@@ -1476,8 +1534,8 @@ describe('ending-punctuation', () => {
|
|
|
1476
1534
|
it('Finds record invalid - Punc $b (only data field)', async () => {
|
|
1477
1535
|
const validator = await validatorFactory();
|
|
1478
1536
|
const result = await validator.validate(recordInvalidWithoutA);
|
|
1479
|
-
|
|
1480
|
-
message: ['Field 567 has
|
|
1537
|
+
assert.deepEqual(result, {
|
|
1538
|
+
message: ['Field 567 has unwanted ending punctuation \'.\''],
|
|
1481
1539
|
valid: false
|
|
1482
1540
|
});
|
|
1483
1541
|
});
|
|
@@ -1486,9 +1544,9 @@ describe('ending-punctuation', () => {
|
|
|
1486
1544
|
it('Repairs the invalid record - Add punc $a (only)', async () => {
|
|
1487
1545
|
const validator = await validatorFactory();
|
|
1488
1546
|
const result = await validator.fix(recordInvalid);
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
message: ['Field 567
|
|
1547
|
+
assert.equal(recordInvalid.equalsTo(recordValid), true);
|
|
1548
|
+
assert.deepEqual(result, {
|
|
1549
|
+
message: ['Field 567 requires ending punctuation, ends in \'s\''],
|
|
1492
1550
|
fix: ['Field 567 - Added punctuation to $a'],
|
|
1493
1551
|
valid: false
|
|
1494
1552
|
});
|
|
@@ -1497,9 +1555,9 @@ describe('ending-punctuation', () => {
|
|
|
1497
1555
|
it('Repairs the invalid record - Remove punc $b (only data field)', async () => {
|
|
1498
1556
|
const validator = await validatorFactory();
|
|
1499
1557
|
const result = await validator.fix(recordInvalidWithoutA);
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
message: ['Field 567 has
|
|
1558
|
+
assert.equal(recordInvalidWithoutA.equalsTo(recordValidWithoutA), true);
|
|
1559
|
+
assert.deepEqual(result, {
|
|
1560
|
+
message: ['Field 567 has unwanted ending punctuation \'.\''],
|
|
1503
1561
|
fix: ['Field 567 - Removed punctuation from $b'],
|
|
1504
1562
|
valid: false
|
|
1505
1563
|
});
|
|
@@ -1527,7 +1585,7 @@ describe('ending-punctuation', () => {
|
|
|
1527
1585
|
]
|
|
1528
1586
|
});
|
|
1529
1587
|
|
|
1530
|
-
const
|
|
1588
|
+
const recordValid648FinNo = new MarcRecord({
|
|
1531
1589
|
leader: '',
|
|
1532
1590
|
fields: [
|
|
1533
1591
|
{
|
|
@@ -1538,6 +1596,16 @@ describe('ending-punctuation', () => {
|
|
|
1538
1596
|
{code: 'a', value: '1900-luku'},
|
|
1539
1597
|
{code: '2', value: 'yso/swe'}
|
|
1540
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
|
+
]
|
|
1541
1609
|
}
|
|
1542
1610
|
]
|
|
1543
1611
|
});
|
|
@@ -1605,37 +1673,37 @@ describe('ending-punctuation', () => {
|
|
|
1605
1673
|
it('Finds record valid - 647 Fast, punc char at end', async () => {
|
|
1606
1674
|
const validator = await validatorFactory();
|
|
1607
1675
|
const result = await validator.validate(recordValid647FastEndPunc);
|
|
1608
|
-
|
|
1676
|
+
assert.equal(result.valid, true);
|
|
1609
1677
|
});
|
|
1610
1678
|
|
|
1611
1679
|
it('Finds record valid - 648 Finnish, without punc', async () => {
|
|
1612
1680
|
const validator = await validatorFactory();
|
|
1613
|
-
const result = await validator.validate(
|
|
1614
|
-
|
|
1681
|
+
const result = await validator.validate(recordValid648FinNo);
|
|
1682
|
+
assert.equal(result.valid, true);
|
|
1615
1683
|
});
|
|
1616
1684
|
|
|
1617
1685
|
it('Finds record valid - 648 Fast, without punc', async () => {
|
|
1618
1686
|
const validator = await validatorFactory();
|
|
1619
1687
|
const result = await validator.validate(recordValid648FastNo);
|
|
1620
|
-
|
|
1688
|
+
assert.equal(result.valid, true);
|
|
1621
1689
|
});
|
|
1622
1690
|
|
|
1623
1691
|
it('Finds record valid - 650 Finnish, without punc', async () => {
|
|
1624
1692
|
const validator = await validatorFactory();
|
|
1625
1693
|
const result = await validator.validate(recordValid650FinNo);
|
|
1626
|
-
|
|
1694
|
+
assert.equal(result.valid, true);
|
|
1627
1695
|
});
|
|
1628
1696
|
|
|
1629
1697
|
it('Finds record valid - 650 English, punc (no control)', async () => {
|
|
1630
1698
|
const validator = await validatorFactory();
|
|
1631
1699
|
const result = await validator.validate(recordValid650EngNoControl);
|
|
1632
|
-
|
|
1700
|
+
assert.equal(result.valid, true);
|
|
1633
1701
|
});
|
|
1634
1702
|
|
|
1635
1703
|
it('Finds record valid - 650 English, with punc', async () => {
|
|
1636
1704
|
const validator = await validatorFactory();
|
|
1637
1705
|
const result = await validator.validate(recordValid650EngControl);
|
|
1638
|
-
|
|
1706
|
+
assert.equal(result.valid, true);
|
|
1639
1707
|
});
|
|
1640
1708
|
|
|
1641
1709
|
// Invalid tests
|
|
@@ -1655,7 +1723,7 @@ describe('ending-punctuation', () => {
|
|
|
1655
1723
|
]
|
|
1656
1724
|
});
|
|
1657
1725
|
|
|
1658
|
-
const
|
|
1726
|
+
const recordInvalid648FinYes = new MarcRecord({
|
|
1659
1727
|
leader: '',
|
|
1660
1728
|
fields: [
|
|
1661
1729
|
{
|
|
@@ -1666,6 +1734,15 @@ describe('ending-punctuation', () => {
|
|
|
1666
1734
|
{code: 'a', value: '1900-luku.'},
|
|
1667
1735
|
{code: '2', value: 'yso/swe'}
|
|
1668
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
|
+
]
|
|
1669
1746
|
}
|
|
1670
1747
|
]
|
|
1671
1748
|
});
|
|
@@ -1733,17 +1810,17 @@ describe('ending-punctuation', () => {
|
|
|
1733
1810
|
it('Finds record invalid - 647 Fast, dot at end', async () => {
|
|
1734
1811
|
const validator = await validatorFactory();
|
|
1735
1812
|
const result = await validator.validate(recordInvalid647FastEndPunc);
|
|
1736
|
-
|
|
1737
|
-
message: ['Field 647 has
|
|
1813
|
+
assert.deepEqual(result, {
|
|
1814
|
+
message: ['Field 647 has an extra dot after \')\''],
|
|
1738
1815
|
valid: false
|
|
1739
1816
|
});
|
|
1740
1817
|
});
|
|
1741
1818
|
|
|
1742
1819
|
it('Finds record invalid - 648 Finnish, with punc', async () => {
|
|
1743
1820
|
const validator = await validatorFactory();
|
|
1744
|
-
const result = await validator.validate(
|
|
1745
|
-
|
|
1746
|
-
message: ['Field 648 has
|
|
1821
|
+
const result = await validator.validate(recordInvalid648FinYes);
|
|
1822
|
+
assert.deepEqual(result, {
|
|
1823
|
+
message: ['Field 648 has unwanted ending punctuation \'.\'', "Field 648 requires ending punctuation, ends in 'a'"],
|
|
1747
1824
|
valid: false
|
|
1748
1825
|
});
|
|
1749
1826
|
});
|
|
@@ -1751,17 +1828,17 @@ describe('ending-punctuation', () => {
|
|
|
1751
1828
|
it('Finds record invalid - 648 Fast, with punc', async () => {
|
|
1752
1829
|
const validator = await validatorFactory();
|
|
1753
1830
|
const result = await validator.validate(recordInvalid648FastYes);
|
|
1754
|
-
|
|
1755
|
-
message: ['Field 648 has
|
|
1831
|
+
assert.deepEqual(result, {
|
|
1832
|
+
message: ['Field 648 has unwanted ending punctuation \'.\''],
|
|
1756
1833
|
valid: false
|
|
1757
1834
|
});
|
|
1758
1835
|
});
|
|
1759
1836
|
|
|
1760
|
-
const invalidField650Message = 'Field 650 has
|
|
1837
|
+
const invalidField650Message = 'Field 650 has unwanted ending punctuation \'.\'';
|
|
1761
1838
|
it('Finds record invalid - 650 Finnish, with punc', async () => {
|
|
1762
1839
|
const validator = await validatorFactory();
|
|
1763
1840
|
const result = await validator.validate(recordInvalid650FinYes);
|
|
1764
|
-
|
|
1841
|
+
assert.deepEqual(result, {
|
|
1765
1842
|
message: [invalidField650Message, invalidField650Message],
|
|
1766
1843
|
valid: false
|
|
1767
1844
|
});
|
|
@@ -1770,8 +1847,8 @@ describe('ending-punctuation', () => {
|
|
|
1770
1847
|
it('Finds record invalid - 650 !Finnish, without punc (no control)', async () => {
|
|
1771
1848
|
const validator = await validatorFactory();
|
|
1772
1849
|
const result = await validator.validate(recordInvalid650EngNoControl);
|
|
1773
|
-
|
|
1774
|
-
message: [
|
|
1850
|
+
assert.deepEqual(result, {
|
|
1851
|
+
message: ['Field 650 requires ending punctuation, ends in \'s\''],
|
|
1775
1852
|
valid: false
|
|
1776
1853
|
});
|
|
1777
1854
|
});
|
|
@@ -1779,8 +1856,8 @@ describe('ending-punctuation', () => {
|
|
|
1779
1856
|
it('Finds record invalid - 650 !Finnish, without punc', async () => {
|
|
1780
1857
|
const validator = await validatorFactory();
|
|
1781
1858
|
const result = await validator.validate(recordInvalid650EngControl);
|
|
1782
|
-
|
|
1783
|
-
message: ['Field 650
|
|
1859
|
+
assert.deepEqual(result, {
|
|
1860
|
+
message: ['Field 650 requires ending punctuation, ends in \'n\''],
|
|
1784
1861
|
valid: false
|
|
1785
1862
|
});
|
|
1786
1863
|
});
|
|
@@ -1789,21 +1866,26 @@ describe('ending-punctuation', () => {
|
|
|
1789
1866
|
it('Repairs the invalid record - 647 Fast, removes double punc $d', async () => {
|
|
1790
1867
|
const validator = await validatorFactory();
|
|
1791
1868
|
const result = await validator.fix(recordInvalid647FastEndPunc);
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
message: ['Field 647 has
|
|
1795
|
-
fix: ['Field 647 - Removed
|
|
1869
|
+
assert.equal(recordInvalid647FastEndPunc.equalsTo(recordValid647FastEndPunc), true);
|
|
1870
|
+
assert.deepEqual(result, {
|
|
1871
|
+
message: ['Field 647 has an extra dot after \')\''],
|
|
1872
|
+
fix: ['Field 647 - Removed dot after punctuation from $d'],
|
|
1796
1873
|
valid: false
|
|
1797
1874
|
});
|
|
1798
1875
|
});
|
|
1799
1876
|
|
|
1800
1877
|
it('Repairs the invalid record - 648 Finnish, removes punc $a', async () => {
|
|
1801
1878
|
const validator = await validatorFactory();
|
|
1802
|
-
const result = await validator.fix(
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
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));
|
|
1886
|
+
assert.deepEqual(result, {
|
|
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'],
|
|
1807
1889
|
valid: false
|
|
1808
1890
|
});
|
|
1809
1891
|
});
|
|
@@ -1811,9 +1893,9 @@ describe('ending-punctuation', () => {
|
|
|
1811
1893
|
it('Repairs the invalid record - 648 Fast, removes punc $a', async () => {
|
|
1812
1894
|
const validator = await validatorFactory();
|
|
1813
1895
|
const result = await validator.fix(recordInvalid648FastYes);
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
message: ['Field 648 has
|
|
1896
|
+
assert.equal(recordInvalid648FastYes.equalsTo(recordValid648FastNo), true);
|
|
1897
|
+
assert.deepEqual(result, {
|
|
1898
|
+
message: ['Field 648 has unwanted ending punctuation \'.\''],
|
|
1817
1899
|
fix: ['Field 648 - Removed punctuation from $a'],
|
|
1818
1900
|
valid: false
|
|
1819
1901
|
});
|
|
@@ -1822,8 +1904,8 @@ describe('ending-punctuation', () => {
|
|
|
1822
1904
|
it('Repairs the invalid record - 650 Finnish, removes punc $x', async () => {
|
|
1823
1905
|
const validator = await validatorFactory();
|
|
1824
1906
|
const result = await validator.fix(recordInvalid650FinYes);
|
|
1825
|
-
|
|
1826
|
-
|
|
1907
|
+
assert.equal(recordInvalid650FinYes.equalsTo(recordValid650FinNo), true);
|
|
1908
|
+
assert.deepEqual(result, {
|
|
1827
1909
|
message: [invalidField650Message, invalidField650Message],
|
|
1828
1910
|
fix: ['Field 650 - Removed punctuation from $x', 'Field 650 - Removed punctuation from $a'],
|
|
1829
1911
|
valid: false
|
|
@@ -1833,9 +1915,9 @@ describe('ending-punctuation', () => {
|
|
|
1833
1915
|
it('Repairs the invalid record - 650 !Finnish, add punc $v (no control)', async () => {
|
|
1834
1916
|
const validator = await validatorFactory();
|
|
1835
1917
|
const result = await validator.fix(recordInvalid650EngNoControl);
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
message: ['Field 650
|
|
1918
|
+
assert.equal(recordInvalid650EngNoControl.equalsTo(recordValid650EngNoControl), true);
|
|
1919
|
+
assert.deepEqual(result, {
|
|
1920
|
+
message: ['Field 650 requires ending punctuation, ends in \'s\''],
|
|
1839
1921
|
fix: ['Field 650 - Added punctuation to $v'],
|
|
1840
1922
|
valid: false
|
|
1841
1923
|
});
|
|
@@ -1844,9 +1926,9 @@ describe('ending-punctuation', () => {
|
|
|
1844
1926
|
it('Repairs the invalid record - 650 !Finnish, add punc $a', async () => {
|
|
1845
1927
|
const validator = await validatorFactory();
|
|
1846
1928
|
const result = await validator.fix(recordInvalid650EngControl);
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
message: ['Field 650
|
|
1929
|
+
assert.equal(recordInvalid650EngControl.equalsTo(recordValid650EngControl), true);
|
|
1930
|
+
assert.deepEqual(result, {
|
|
1931
|
+
message: ['Field 650 requires ending punctuation, ends in \'n\''],
|
|
1850
1932
|
fix: ['Field 650 - Added punctuation to $a'],
|
|
1851
1933
|
valid: false
|
|
1852
1934
|
});
|
|
@@ -1856,7 +1938,7 @@ describe('ending-punctuation', () => {
|
|
|
1856
1938
|
// "654-662 EI - EI suomalaisten sanastojen termeihin, muihin sanaston käytännön mukaan, yleensä KYLLÄ"
|
|
1857
1939
|
// Finnish terms at $2:['ysa', 'yso', 'kassu', 'seko', 'valo', 'kulo', 'puho', 'oiko', 'mero', 'liito', 'fast', 'allars']
|
|
1858
1940
|
// Default TRUE, until more special cases are added
|
|
1859
|
-
describe('#654-662 TRUE - If
|
|
1941
|
+
describe('#654-662 TRUE - If Finnish, else TRUE', () => {
|
|
1860
1942
|
// Valid tests
|
|
1861
1943
|
const recordValid655FinNo = new MarcRecord({
|
|
1862
1944
|
leader: '',
|
|
@@ -1982,49 +2064,49 @@ describe('ending-punctuation', () => {
|
|
|
1982
2064
|
it('Finds record valid - 655 Finnish, no punc $a', async () => {
|
|
1983
2065
|
const validator = await validatorFactory();
|
|
1984
2066
|
const result = await validator.validate(recordValid655FinNo);
|
|
1985
|
-
|
|
2067
|
+
assert.equal(result.valid, true);
|
|
1986
2068
|
});
|
|
1987
2069
|
|
|
1988
2070
|
it('Finds record valid - 655 Finnish, without punc', async () => {
|
|
1989
2071
|
const validator = await validatorFactory();
|
|
1990
2072
|
const result = await validator.validate(recordValid655FinNo2);
|
|
1991
|
-
|
|
2073
|
+
assert.equal(result.valid, true);
|
|
1992
2074
|
});
|
|
1993
2075
|
|
|
1994
2076
|
it('Finds record valid - 655 English, with punc $y', async () => {
|
|
1995
2077
|
const validator = await validatorFactory();
|
|
1996
2078
|
const result = await validator.validate(recordValid655EngYes);
|
|
1997
|
-
|
|
2079
|
+
assert.equal(result.valid, true);
|
|
1998
2080
|
});
|
|
1999
2081
|
|
|
2000
2082
|
it('Finds record valid - 655 English, with punc $a (no control)', async () => {
|
|
2001
2083
|
const validator = await validatorFactory();
|
|
2002
2084
|
const result = await validator.validate(recordValid655EngYesNoControl);
|
|
2003
|
-
|
|
2085
|
+
assert.equal(result.valid, true);
|
|
2004
2086
|
});
|
|
2005
2087
|
|
|
2006
2088
|
it('Finds record valid - 656 Finnish, without punc $a', async () => {
|
|
2007
2089
|
const validator = await validatorFactory();
|
|
2008
2090
|
const result = await validator.validate(recordValid656FinNo);
|
|
2009
|
-
|
|
2091
|
+
assert.equal(result.valid, true);
|
|
2010
2092
|
});
|
|
2011
2093
|
|
|
2012
2094
|
it('Finds record valid - 657 English, with punc $z', async () => {
|
|
2013
2095
|
const validator = await validatorFactory();
|
|
2014
2096
|
const result = await validator.validate(recordValid657EngYes);
|
|
2015
|
-
|
|
2097
|
+
assert.equal(result.valid, true);
|
|
2016
2098
|
});
|
|
2017
2099
|
|
|
2018
2100
|
it('Finds record valid - 658 English, with punc $d', async () => {
|
|
2019
2101
|
const validator = await validatorFactory();
|
|
2020
2102
|
const result = await validator.validate(recordValid658EngYes);
|
|
2021
|
-
|
|
2103
|
+
assert.equal(result.valid, true);
|
|
2022
2104
|
});
|
|
2023
2105
|
|
|
2024
2106
|
it('Finds record valid - 662 English, with punc $a', async () => {
|
|
2025
2107
|
const validator = await validatorFactory();
|
|
2026
2108
|
const result = await validator.validate(recordValid662EngYes);
|
|
2027
|
-
|
|
2109
|
+
assert.equal(result.valid, true);
|
|
2028
2110
|
});
|
|
2029
2111
|
|
|
2030
2112
|
// Invalid tests
|
|
@@ -2152,8 +2234,8 @@ describe('ending-punctuation', () => {
|
|
|
2152
2234
|
it('Finds record invalid - 655 Finnish, punc $a', async () => {
|
|
2153
2235
|
const validator = await validatorFactory();
|
|
2154
2236
|
const result = await validator.validate(recordInvalid655FinYes);
|
|
2155
|
-
|
|
2156
|
-
message: ['Field 655 has
|
|
2237
|
+
assert.deepEqual(result, {
|
|
2238
|
+
message: ['Field 655 has unwanted ending punctuation \'.\''],
|
|
2157
2239
|
valid: false
|
|
2158
2240
|
});
|
|
2159
2241
|
});
|
|
@@ -2161,8 +2243,8 @@ describe('ending-punctuation', () => {
|
|
|
2161
2243
|
it('Finds record invalid - 655 Finnish, with punc', async () => {
|
|
2162
2244
|
const validator = await validatorFactory();
|
|
2163
2245
|
const result = await validator.validate(recordInvalid655FinYes2);
|
|
2164
|
-
|
|
2165
|
-
message: ['Field 655 has
|
|
2246
|
+
assert.deepEqual(result, {
|
|
2247
|
+
message: ['Field 655 has unwanted ending punctuation \'.\''],
|
|
2166
2248
|
valid: false
|
|
2167
2249
|
});
|
|
2168
2250
|
});
|
|
@@ -2170,8 +2252,8 @@ describe('ending-punctuation', () => {
|
|
|
2170
2252
|
it('Finds record invalid - 655 !Finnish, without punc $y', async () => {
|
|
2171
2253
|
const validator = await validatorFactory();
|
|
2172
2254
|
const result = await validator.validate(recordInvalid655EngNo);
|
|
2173
|
-
|
|
2174
|
-
message: ['Field 655
|
|
2255
|
+
assert.deepEqual(result, {
|
|
2256
|
+
message: ['Field 655 requires ending punctuation, ends in \'4\''],
|
|
2175
2257
|
valid: false
|
|
2176
2258
|
});
|
|
2177
2259
|
});
|
|
@@ -2179,8 +2261,8 @@ describe('ending-punctuation', () => {
|
|
|
2179
2261
|
it('Finds record invalid - 655 !Finnish, without punc $a (no control)', async () => {
|
|
2180
2262
|
const validator = await validatorFactory();
|
|
2181
2263
|
const result = await validator.validate(recordInvalid655EngNoNoControl);
|
|
2182
|
-
|
|
2183
|
-
message: ['Field 655
|
|
2264
|
+
assert.deepEqual(result, {
|
|
2265
|
+
message: ['Field 655 requires ending punctuation, ends in \'s\''],
|
|
2184
2266
|
valid: false
|
|
2185
2267
|
});
|
|
2186
2268
|
});
|
|
@@ -2188,8 +2270,8 @@ describe('ending-punctuation', () => {
|
|
|
2188
2270
|
it('Finds record invalid - 656 Finnish, with punc $a', async () => {
|
|
2189
2271
|
const validator = await validatorFactory();
|
|
2190
2272
|
const result = await validator.validate(recordInvalid656FinYes);
|
|
2191
|
-
|
|
2192
|
-
message: ['Field 656 has
|
|
2273
|
+
assert.deepEqual(result, {
|
|
2274
|
+
message: ['Field 656 has unwanted ending punctuation \'.\''],
|
|
2193
2275
|
valid: false
|
|
2194
2276
|
});
|
|
2195
2277
|
});
|
|
@@ -2197,8 +2279,8 @@ describe('ending-punctuation', () => {
|
|
|
2197
2279
|
it('Finds record invalid - 657 !Finnish, without punc $z', async () => {
|
|
2198
2280
|
const validator = await validatorFactory();
|
|
2199
2281
|
const result = await validator.validate(recordInvalid657EngNo);
|
|
2200
|
-
|
|
2201
|
-
message: ['Field 657
|
|
2282
|
+
assert.deepEqual(result, {
|
|
2283
|
+
message: ['Field 657 requires ending punctuation, ends in \'k\''],
|
|
2202
2284
|
valid: false
|
|
2203
2285
|
});
|
|
2204
2286
|
});
|
|
@@ -2206,8 +2288,8 @@ describe('ending-punctuation', () => {
|
|
|
2206
2288
|
it('Finds record invalid - 658 !Finnish, without punc $d', async () => {
|
|
2207
2289
|
const validator = await validatorFactory();
|
|
2208
2290
|
const result = await validator.validate(recordInvalid658EngNo);
|
|
2209
|
-
|
|
2210
|
-
message: ['Field 658
|
|
2291
|
+
assert.deepEqual(result, {
|
|
2292
|
+
message: ['Field 658 requires ending punctuation, ends in \'d\''],
|
|
2211
2293
|
valid: false
|
|
2212
2294
|
});
|
|
2213
2295
|
});
|
|
@@ -2215,8 +2297,8 @@ describe('ending-punctuation', () => {
|
|
|
2215
2297
|
it('Finds record invalid - 662 !Finnish, without punc $a', async () => {
|
|
2216
2298
|
const validator = await validatorFactory();
|
|
2217
2299
|
const result = await validator.validate(recordInvalid662EngNo);
|
|
2218
|
-
|
|
2219
|
-
message: ['Field 662
|
|
2300
|
+
assert.deepEqual(result, {
|
|
2301
|
+
message: ['Field 662 requires ending punctuation, ends in \'a\''],
|
|
2220
2302
|
valid: false
|
|
2221
2303
|
});
|
|
2222
2304
|
});
|
|
@@ -2225,9 +2307,9 @@ describe('ending-punctuation', () => {
|
|
|
2225
2307
|
it('Repairs the invalid record - 655 Finnish, remove punc $a', async () => {
|
|
2226
2308
|
const validator = await validatorFactory();
|
|
2227
2309
|
const result = await validator.fix(recordInvalid655FinYes);
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
message: ['Field 655 has
|
|
2310
|
+
assert.equal(recordInvalid655FinYes.equalsTo(recordValid655FinNo), true);
|
|
2311
|
+
assert.deepEqual(result, {
|
|
2312
|
+
message: ['Field 655 has unwanted ending punctuation \'.\''],
|
|
2231
2313
|
fix: ['Field 655 - Removed punctuation from $a'],
|
|
2232
2314
|
valid: false
|
|
2233
2315
|
});
|
|
@@ -2236,9 +2318,9 @@ describe('ending-punctuation', () => {
|
|
|
2236
2318
|
it('Repairs the invalid record - 655 Finnish, removes punc $a 2', async () => {
|
|
2237
2319
|
const validator = await validatorFactory();
|
|
2238
2320
|
const result = await validator.fix(recordInvalid655FinYes2);
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
message: ['Field 655 has
|
|
2321
|
+
assert.equal(recordInvalid655FinYes2.equalsTo(recordValid655FinNo2), true);
|
|
2322
|
+
assert.deepEqual(result, {
|
|
2323
|
+
message: ['Field 655 has unwanted ending punctuation \'.\''],
|
|
2242
2324
|
fix: ['Field 655 - Removed punctuation from $a'],
|
|
2243
2325
|
valid: false
|
|
2244
2326
|
});
|
|
@@ -2247,9 +2329,9 @@ describe('ending-punctuation', () => {
|
|
|
2247
2329
|
it('Repairs the invalid record - 655 !Finnish, add punc $y', async () => {
|
|
2248
2330
|
const validator = await validatorFactory();
|
|
2249
2331
|
const result = await validator.fix(recordInvalid655EngNo);
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
message: ['Field 655
|
|
2332
|
+
assert.equal(recordInvalid655EngNo.equalsTo(recordValid655EngYes), true);
|
|
2333
|
+
assert.deepEqual(result, {
|
|
2334
|
+
message: ['Field 655 requires ending punctuation, ends in \'4\''],
|
|
2253
2335
|
fix: ['Field 655 - Added punctuation to $y'],
|
|
2254
2336
|
valid: false
|
|
2255
2337
|
});
|
|
@@ -2258,9 +2340,9 @@ describe('ending-punctuation', () => {
|
|
|
2258
2340
|
it('Repairs the invalid record - 655 !Finnish, add punc $a (no control)', async () => {
|
|
2259
2341
|
const validator = await validatorFactory();
|
|
2260
2342
|
const result = await validator.fix(recordInvalid655EngNoNoControl);
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
message: ['Field 655
|
|
2343
|
+
assert.equal(recordInvalid655EngNoNoControl.equalsTo(recordValid655EngYesNoControl), true);
|
|
2344
|
+
assert.deepEqual(result, {
|
|
2345
|
+
message: ['Field 655 requires ending punctuation, ends in \'s\''],
|
|
2264
2346
|
fix: ['Field 655 - Added punctuation to $a'],
|
|
2265
2347
|
valid: false
|
|
2266
2348
|
});
|
|
@@ -2269,9 +2351,9 @@ describe('ending-punctuation', () => {
|
|
|
2269
2351
|
it('Repairs the invalid record - 656 Finnish, remove punc $a', async () => {
|
|
2270
2352
|
const validator = await validatorFactory();
|
|
2271
2353
|
const result = await validator.fix(recordInvalid656FinYes);
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
message: ['Field 656 has
|
|
2354
|
+
assert.equal(recordInvalid656FinYes.equalsTo(recordValid656FinNo), true);
|
|
2355
|
+
assert.deepEqual(result, {
|
|
2356
|
+
message: ['Field 656 has unwanted ending punctuation \'.\''],
|
|
2275
2357
|
fix: ['Field 656 - Removed punctuation from $a'],
|
|
2276
2358
|
valid: false
|
|
2277
2359
|
});
|
|
@@ -2280,9 +2362,9 @@ describe('ending-punctuation', () => {
|
|
|
2280
2362
|
it('Repairs the invalid record - 657 !Finnish, add punc $z', async () => {
|
|
2281
2363
|
const validator = await validatorFactory();
|
|
2282
2364
|
const result = await validator.fix(recordInvalid657EngNo);
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
message: ['Field 657
|
|
2365
|
+
assert.equal(recordInvalid657EngNo.equalsTo(recordValid657EngYes), true);
|
|
2366
|
+
assert.deepEqual(result, {
|
|
2367
|
+
message: ['Field 657 requires ending punctuation, ends in \'k\''],
|
|
2286
2368
|
fix: ['Field 657 - Added punctuation to $z'],
|
|
2287
2369
|
valid: false
|
|
2288
2370
|
});
|
|
@@ -2291,20 +2373,20 @@ describe('ending-punctuation', () => {
|
|
|
2291
2373
|
it('Repairs the invalid record - 658 !Finnish, add punc $d', async () => {
|
|
2292
2374
|
const validator = await validatorFactory();
|
|
2293
2375
|
const result = await validator.fix(recordInvalid658EngNo);
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
message: ['Field 658
|
|
2376
|
+
assert.equal(recordInvalid658EngNo.equalsTo(recordValid658EngYes), true);
|
|
2377
|
+
assert.deepEqual(result, {
|
|
2378
|
+
message: ['Field 658 requires ending punctuation, ends in \'d\''],
|
|
2297
2379
|
fix: ['Field 658 - Added punctuation to $d'],
|
|
2298
2380
|
valid: false
|
|
2299
2381
|
});
|
|
2300
2382
|
});
|
|
2301
2383
|
|
|
2302
|
-
it('Repairs the invalid record - 662 !Finnish, add
|
|
2384
|
+
it('Repairs the invalid record - 662 !Finnish, add punc $a', async () => {
|
|
2303
2385
|
const validator = await validatorFactory();
|
|
2304
2386
|
const result = await validator.fix(recordInvalid662EngNo);
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
message: ['Field 662
|
|
2387
|
+
assert.equal(recordInvalid662EngNo.equalsTo(recordValid662EngYes), true);
|
|
2388
|
+
assert.deepEqual(result, {
|
|
2389
|
+
message: ['Field 662 requires ending punctuation, ends in \'a\''],
|
|
2308
2390
|
fix: ['Field 662 - Added punctuation to $a'],
|
|
2309
2391
|
valid: false
|
|
2310
2392
|
});
|
|
@@ -2346,13 +2428,13 @@ describe('ending-punctuation', () => {
|
|
|
2346
2428
|
it('Finds record valid - Punc $a, but following fields, $e no punc (last)', async () => {
|
|
2347
2429
|
const validator = await validatorFactory();
|
|
2348
2430
|
const result = await validator.validate(recordValid);
|
|
2349
|
-
|
|
2431
|
+
assert.equal(result.valid, true);
|
|
2350
2432
|
});
|
|
2351
2433
|
|
|
2352
2434
|
it('Finds record valid - Punc $a (only)', async () => {
|
|
2353
2435
|
const validator = await validatorFactory();
|
|
2354
2436
|
const result = await validator.validate(recordValidOnlyA);
|
|
2355
|
-
|
|
2437
|
+
assert.equal(result.valid, true);
|
|
2356
2438
|
});
|
|
2357
2439
|
|
|
2358
2440
|
// Invalid tests
|
|
@@ -2387,8 +2469,8 @@ describe('ending-punctuation', () => {
|
|
|
2387
2469
|
it('Finds record invalid - Punc $e (language field, strict)', async () => {
|
|
2388
2470
|
const validator = await validatorFactory();
|
|
2389
2471
|
const result = await validator.validate(recordInvalid);
|
|
2390
|
-
|
|
2391
|
-
message: ['Field 760 has
|
|
2472
|
+
assert.deepEqual(result, {
|
|
2473
|
+
message: ['Field 760 has unwanted ending punctuation \'.\''],
|
|
2392
2474
|
valid: false
|
|
2393
2475
|
});
|
|
2394
2476
|
});
|
|
@@ -2396,8 +2478,8 @@ describe('ending-punctuation', () => {
|
|
|
2396
2478
|
it('Finds record invalid - No punc $a (only)', async () => {
|
|
2397
2479
|
const validator = await validatorFactory();
|
|
2398
2480
|
const result = await validator.validate(recordInvalidOnlyA);
|
|
2399
|
-
|
|
2400
|
-
message: ['Field 760
|
|
2481
|
+
assert.deepEqual(result, {
|
|
2482
|
+
message: ['Field 760 requires ending punctuation, ends in \'c\''],
|
|
2401
2483
|
valid: false
|
|
2402
2484
|
});
|
|
2403
2485
|
});
|
|
@@ -2406,9 +2488,9 @@ describe('ending-punctuation', () => {
|
|
|
2406
2488
|
it('Repairs the invalid record - Remove punc $e (language field, strict)', async () => {
|
|
2407
2489
|
const validator = await validatorFactory();
|
|
2408
2490
|
const result = await validator.fix(recordInvalid);
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
message: ['Field 760 has
|
|
2491
|
+
assert.equal(recordInvalid.equalsTo(recordValid), true);
|
|
2492
|
+
assert.deepEqual(result, {
|
|
2493
|
+
message: ['Field 760 has unwanted ending punctuation \'.\''],
|
|
2412
2494
|
fix: ['Field 760 - Removed punctuation from $e'],
|
|
2413
2495
|
valid: false
|
|
2414
2496
|
});
|
|
@@ -2417,9 +2499,9 @@ describe('ending-punctuation', () => {
|
|
|
2417
2499
|
it('Repairs the invalid record - Add punc $a (only)', async () => {
|
|
2418
2500
|
const validator = await validatorFactory();
|
|
2419
2501
|
const result = await validator.fix(recordInvalidOnlyA);
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
message: ['Field 760
|
|
2502
|
+
assert.equal(recordInvalidOnlyA.equalsTo(recordValidOnlyA), true);
|
|
2503
|
+
assert.deepEqual(result, {
|
|
2504
|
+
message: ['Field 760 requires ending punctuation, ends in \'c\''],
|
|
2423
2505
|
fix: ['Field 760 - Added punctuation to $a'],
|
|
2424
2506
|
valid: false
|
|
2425
2507
|
});
|
|
@@ -2467,13 +2549,13 @@ describe('ending-punctuation', () => {
|
|
|
2467
2549
|
it('Finds record valid - Punc $b', async () => {
|
|
2468
2550
|
const validator = await validatorFactory();
|
|
2469
2551
|
const result = await validator.validate(recordValidSimple);
|
|
2470
|
-
|
|
2552
|
+
assert.equal(result.valid, true);
|
|
2471
2553
|
});
|
|
2472
2554
|
|
|
2473
2555
|
it('Finds record valid - Punc $c', async () => {
|
|
2474
2556
|
const validator = await validatorFactory();
|
|
2475
2557
|
const result = await validator.validate(recordValidComplex);
|
|
2476
|
-
|
|
2558
|
+
assert.equal(result.valid, true);
|
|
2477
2559
|
});
|
|
2478
2560
|
|
|
2479
2561
|
// Invalid tests
|
|
@@ -2513,8 +2595,8 @@ describe('ending-punctuation', () => {
|
|
|
2513
2595
|
it('Finds record invalid - No punc $b', async () => {
|
|
2514
2596
|
const validator = await validatorFactory();
|
|
2515
2597
|
const result = await validator.validate(recordInvalidSimple);
|
|
2516
|
-
|
|
2517
|
-
message: ['Field 880
|
|
2598
|
+
assert.deepEqual(result, {
|
|
2599
|
+
message: ['Field 880 requires ending punctuation, ends in \'3\''],
|
|
2518
2600
|
valid: false
|
|
2519
2601
|
});
|
|
2520
2602
|
});
|
|
@@ -2522,8 +2604,8 @@ describe('ending-punctuation', () => {
|
|
|
2522
2604
|
it('Finds record invalid - No punc $c', async () => {
|
|
2523
2605
|
const validator = await validatorFactory();
|
|
2524
2606
|
const result = await validator.validate(recordInvalidComplex);
|
|
2525
|
-
|
|
2526
|
-
message: ['Field 880
|
|
2607
|
+
assert.deepEqual(result, {
|
|
2608
|
+
message: ['Field 880 requires ending punctuation, ends in \'6\''],
|
|
2527
2609
|
valid: false
|
|
2528
2610
|
});
|
|
2529
2611
|
});
|
|
@@ -2532,9 +2614,9 @@ describe('ending-punctuation', () => {
|
|
|
2532
2614
|
it('Repairs the invalid record - Add punc $b', async () => {
|
|
2533
2615
|
const validator = await validatorFactory();
|
|
2534
2616
|
const result = await validator.fix(recordInvalidSimple);
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
message: ['Field 880
|
|
2617
|
+
assert.equal(recordInvalidSimple.equalsTo(recordValidSimple), true);
|
|
2618
|
+
assert.deepEqual(result, {
|
|
2619
|
+
message: ['Field 880 requires ending punctuation, ends in \'3\''],
|
|
2538
2620
|
fix: ['Field 880 - Added punctuation to $b'],
|
|
2539
2621
|
valid: false
|
|
2540
2622
|
});
|
|
@@ -2543,9 +2625,9 @@ describe('ending-punctuation', () => {
|
|
|
2543
2625
|
it('Repairs the invalid record - Add punc $c', async () => {
|
|
2544
2626
|
const validator = await validatorFactory();
|
|
2545
2627
|
const result = await validator.fix(recordInvalidComplex);
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
message: ['Field 880
|
|
2628
|
+
assert.equal(recordInvalidComplex.equalsTo(recordValidComplex), true);
|
|
2629
|
+
assert.deepEqual(result, {
|
|
2630
|
+
message: ['Field 880 requires ending punctuation, ends in \'6\''],
|
|
2549
2631
|
fix: ['Field 880 - Added punctuation to $c'],
|
|
2550
2632
|
valid: false
|
|
2551
2633
|
});
|