@natlibfi/marc-record-validators-melinda 11.6.7-alpha.1 → 12.0.0-alpha.1
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 +1 -1
- 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 +46 -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 +871 -769
- package/dist/ending-punctuation-conf.js.map +7 -1
- package/dist/ending-punctuation.js +84 -167
- package/dist/ending-punctuation.js.map +7 -1
- package/dist/ending-punctuation.test.js +2290 -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 +119 -413
- package/dist/index.js.map +7 -1
- package/dist/indicator-fixes.js +57 -95
- 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 +66 -126
- 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 +182 -379
- package/dist/merge-fields/counterpartField.js.map +7 -1
- package/dist/merge-fields/index.js +15 -49
- 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 +44 -0
- package/dist/merge-fields.test.js.map +7 -0
- package/dist/mergeField500Lisapainokset.js +28 -57
- 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 +67 -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 +251 -800
- 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 +103 -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 +33 -64
- 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 +44 -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 +72 -126
- package/dist/utils.js.map +7 -1
- package/eslint.config.mjs +1 -2
- package/package.json +21 -93
- 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.test.js +55 -0
- 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.js +1 -1
- package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +172 -173
- 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/indicator-fixes.js +3 -3
- package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
- package/src/isbn-issn.js +1 -1
- 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/merge-fields/controlSubfields.js +1 -1
- package/src/merge-fields/counterpartField.js +8 -9
- package/src/merge-fields/index.js +1 -1
- package/src/merge-fields/mergableIndicator.js +1 -1
- package/src/merge-fields/mergeField.js +6 -6
- 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} +12 -13
- 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 +6 -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 +4 -4
- 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 +11 -11
- 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 +5 -5
- 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 +1 -1
- 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.spec.js → translate-terms.test.js} +13 -13
- 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 +3 -3
- 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/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/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/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/cyrillux-usemarcon-replacement.spec.js +0 -47
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-structure.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fieldStructure","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","config","tag","ind1","ind2","subfields","a","maxOccurrence","validator","validatorFactory","to","be","an","that","has","any","keys","description","validate","error","with","property","leader","tags","valuePattern","strict","record","MarcRecord","fields","value","result","eql","valid","recordValid","code","recordInvalidMany","required","pattern","b","recordInvalidExtra","recordInvalidTooMany","recordInvalidRegExp","recordInvalidMissing","recordInvalidMissingSubfield","dependencies","recordInvalid"],"sources":["../src/field-structure.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/field-structure';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\n// Factory validation\ndescribe('field-structure', () => {\n it('Creates a validator', async () => {\n const config = [\n {\n tag: /^035$/u,\n ind1: /^0$/u,\n ind2: /^1$/u\n }, {\n tag: /^100$/u,\n subfields: {\n a: {maxOccurrence: 1}\n }\n }\n ];\n\n const validator = await validatorFactory(config);\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n describe('#configuration', () => {\n it('Throws an error when config array not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration array not provided');\n }\n });\n\n it('Throws an error when config array has unidentified field', () => {\n const config = [\n {\n leader: /^035$/u,\n tags: /^035$/u\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - unidentified value: tags');\n }\n });\n\n it('Throws an error when config array has field with incorrect data type', () => {\n const config = [\n {\n leader: /^035$/u,\n tag: 35\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - invalid data type for: tag');\n }\n });\n\n it('Throws an error when config array has excluded element', () => {\n const config = [\n {\n leader: /^035$/u,\n tag: /^035$/u\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - excluded element');\n }\n });\n\n it('Throws an error when config subfields not object', () => {\n const config = [\n {\n tag: /^001$/u,\n valuePattern: /\\d+/u\n }, {\n tag: /^245$/u,\n strict: true,\n subfields: 'This should be Object'\n }\n ];\n\n try {\n validatorFactory(config);\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'Configuration not valid - subfields not object');\n }\n });\n });\n\n it('Should find the record valid because no fields match the config', async () => {\n const config = [\n {\n tag: /^FOO$/u,\n valuePattern: /bar/u\n }\n ];\n\n const record = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }\n ]\n });\n\n const validator = await validatorFactory(config);\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true});\n });\n\n // Indicators and subfields validation\n describe('#validate: Indicators and subfields', () => {\n const config = [\n {\n tag: /^035$/u,\n ind1: /^0$/u,\n ind2: /^1$/u\n }, {\n tag: /^100$/u,\n subfields: {\n a: {maxOccurrence: 1}\n }\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '035',\n ind1: '0',\n ind2: '1',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }, {\n code: 'b',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMany = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '035',\n ind1: '1',\n ind2: '1',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }, {\n code: 'b',\n value: 'fubar'\n }, {\n code: 'a',\n value: 'barfoo'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid: Too many subfields', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMany);\n\n expect(result).to.eql({valid: false});\n });\n });\n\n // Patterns and mandatory & strict subfields\n describe('#validate: Patterns and mandatory & strict subfields', () => {\n const config = [\n {\n tag: /^001$/u,\n valuePattern: /\\d+/u\n }, {\n tag: /^245$/u,\n strict: true,\n subfields: {\n a: {required: true, maxOccurrence: 1, pattern: /\\w+/u},\n b: {maxOccurrence: 1, pattern: /\\w+/u}\n }\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidExtra = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }, {\n code: 'c',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidTooMany = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }, {\n code: 'b',\n value: 'bar'\n }, {\n code: 'a',\n value: 'fubar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidRegExp = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456a'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'ää'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMissing = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'ää'\n }, {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n const recordInvalidMissingSubfield = new MarcRecord({\n leader: '',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'bar'\n }\n ]\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'b',\n value: 'bar'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid: Extra field in strict', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidExtra);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Too many occurances', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidTooMany);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Invalid RegExp', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidRegExp);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Finds the record invalid: Missing field', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMissing);\n\n expect(result).to.eql({valid: false});\n });\n it('Finds the record invalid: Missing subfield', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalidMissingSubfield);\n\n expect(result).to.eql({valid: false});\n });\n });\n\n // Dependencies\n describe('#validate: Dependencies', () => {\n const config = [\n {\n leader: /^.{6}s/u,\n dependencies: [\n {\n tag: /^773$/u,\n subfields: {7: /^nnas$/u}\n }\n ]\n }\n ];\n\n const recordValid = new MarcRecord({\n leader: '63ab75sfoo122myhgh',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '773',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: '7',\n value: 'nnas'\n }, {\n code: 'w',\n value: '789101112'\n }\n ]\n }\n ]\n });\n\n const recordInvalid = new MarcRecord({\n leader: '63ab75afoo122myhgh',\n fields: [\n {\n tag: '001',\n value: '123456'\n }, {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }, {\n tag: '773',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: '7',\n value: 'nnas'\n }, {\n code: 'w',\n value: '789101112'\n }\n ]\n }\n ]\n });\n\n it('Finds the record valid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordValid);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory(config);\n const result = await validator.validate(recordInvalid);\n\n expect(result).to.eql({valid: false});\n });\n\n it('Find the record valid (Dependency on leader)', async () => {\n const validator = await validatorFactory([{tag: /^007$/u, dependencies: [{leader: /^.{6}[at]/u}]}]);\n const result = await validator.validate(new MarcRecord({\n leader: '00000ccm^a22003372i^4500',\n fields: [\n {tag: '001', value: '123456'},\n {tag: '245', value: 'foobar'}\n ]\n }));\n\n expect(result).to.eql({valid: true});\n });\n\n it('Find the record invalid (Dependency on leader)', async () => {\n const validator = await validatorFactory([{tag: /^007$/u, dependencies: [{leader: /^.{6}[at]/u}]}]);\n const result = await validator.validate(new MarcRecord({\n leader: '00000cam^a22003372i^4500',\n fields: [\n {tag: '001', value: '123456'},\n {tag: '245', value: 'foobar'}\n ]\n }));\n\n expect(result).to.eql({valid: false});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = _interopRequireDefault(require("chai"));
|
|
4
|
-
var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised"));
|
|
5
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
6
|
-
var _fieldsPresent = _interopRequireDefault(require("../src/fields-present"));
|
|
7
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
-
const {
|
|
9
|
-
expect
|
|
10
|
-
} = _chai.default;
|
|
11
|
-
_chai.default.use(_chaiAsPromised.default);
|
|
12
|
-
describe('fields-present', () => {
|
|
13
|
-
it('Creates a validator', async () => {
|
|
14
|
-
const validator = await (0, _fieldsPresent.default)([/^500$/u, /^400$/u]);
|
|
15
|
-
expect(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
16
|
-
expect(validator.description).to.be.a('string');
|
|
17
|
-
expect(validator.validate).to.be.a('function');
|
|
18
|
-
});
|
|
19
|
-
it('Throws an error when tagPatterns not provided', () => {
|
|
20
|
-
try {
|
|
21
|
-
(0, _fieldsPresent.default)();
|
|
22
|
-
} catch (error) {
|
|
23
|
-
expect(error).to.be.an('error').with.property('message', 'No tag pattern array provided');
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
describe('#validate', () => {
|
|
27
|
-
it('Finds the record valid', async () => {
|
|
28
|
-
const tagPatterns = [/^5..$/u, /^FOO$/u];
|
|
29
|
-
const validator = await (0, _fieldsPresent.default)(tagPatterns);
|
|
30
|
-
const record = new _marcRecord.MarcRecord({
|
|
31
|
-
fields: [{
|
|
32
|
-
tag: '500',
|
|
33
|
-
ind1: ' ',
|
|
34
|
-
ind2: '0',
|
|
35
|
-
subfields: [{
|
|
36
|
-
code: 'a',
|
|
37
|
-
value: 'foo'
|
|
38
|
-
}]
|
|
39
|
-
}, {
|
|
40
|
-
tag: 'FOO',
|
|
41
|
-
ind1: ' ',
|
|
42
|
-
ind2: '0',
|
|
43
|
-
subfields: [{
|
|
44
|
-
code: 'a',
|
|
45
|
-
value: 'foo'
|
|
46
|
-
}]
|
|
47
|
-
}]
|
|
48
|
-
});
|
|
49
|
-
const result = await validator.validate(record);
|
|
50
|
-
expect(result).to.eql({
|
|
51
|
-
valid: true,
|
|
52
|
-
messages: []
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
it('Finds the record valid', async () => {
|
|
56
|
-
const tagPatterns = [/^(020|022|024)$/u];
|
|
57
|
-
const validator = await (0, _fieldsPresent.default)(tagPatterns);
|
|
58
|
-
const record = new _marcRecord.MarcRecord({
|
|
59
|
-
fields: [{
|
|
60
|
-
tag: '020',
|
|
61
|
-
ind1: ' ',
|
|
62
|
-
ind2: '0',
|
|
63
|
-
subfields: [{
|
|
64
|
-
code: 'a',
|
|
65
|
-
value: 'foo'
|
|
66
|
-
}]
|
|
67
|
-
}, {
|
|
68
|
-
tag: '040',
|
|
69
|
-
ind1: ' ',
|
|
70
|
-
ind2: '0',
|
|
71
|
-
subfields: [{
|
|
72
|
-
code: 'a',
|
|
73
|
-
value: 'foo'
|
|
74
|
-
}]
|
|
75
|
-
}]
|
|
76
|
-
});
|
|
77
|
-
const result = await validator.validate(record);
|
|
78
|
-
expect(result).to.eql({
|
|
79
|
-
valid: true,
|
|
80
|
-
messages: []
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
it('Finds the record invalid', async () => {
|
|
84
|
-
const tagPatterns = [/^5..$/u, /^FOO$/u];
|
|
85
|
-
const validator = await (0, _fieldsPresent.default)(tagPatterns);
|
|
86
|
-
const record = new _marcRecord.MarcRecord({
|
|
87
|
-
fields: [{
|
|
88
|
-
tag: '001',
|
|
89
|
-
ind1: ' ',
|
|
90
|
-
ind2: '0',
|
|
91
|
-
subfields: [{
|
|
92
|
-
code: 'a',
|
|
93
|
-
value: 'foo'
|
|
94
|
-
}]
|
|
95
|
-
}, {
|
|
96
|
-
tag: '500',
|
|
97
|
-
ind1: ' ',
|
|
98
|
-
ind2: '0',
|
|
99
|
-
subfields: [{
|
|
100
|
-
code: 'a',
|
|
101
|
-
value: 'foo'
|
|
102
|
-
}]
|
|
103
|
-
}, {
|
|
104
|
-
tag: 'BAR',
|
|
105
|
-
ind1: '1',
|
|
106
|
-
ind2: '0',
|
|
107
|
-
subfields: [{
|
|
108
|
-
code: 'a',
|
|
109
|
-
value: 'foo'
|
|
110
|
-
}]
|
|
111
|
-
}]
|
|
112
|
-
});
|
|
113
|
-
const result = await validator.validate(record);
|
|
114
|
-
expect(result).to.eql({
|
|
115
|
-
valid: false,
|
|
116
|
-
messages: ['The following tag patterns are not present in the record tag field: /^FOO$/u']
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
//# sourceMappingURL=fields-present.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fields-present.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fieldsPresent","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","tagPatterns","record","MarcRecord","fields","tag","ind1","ind2","subfields","code","value","result","eql","valid","messages"],"sources":["../src/fields-present.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fields-present';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fields-present', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([/^500$/u, /^400$/u]);\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when tagPatterns not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No tag pattern array provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'FOO',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record valid', async () => {\n const tagPatterns = [/^(020|022|024)$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '040',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record invalid', async () => {\n const tagPatterns = [/^5..$/u, /^FOO$/u];\n const validator = await validatorFactory(tagPatterns);\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '500',\n ind1: ' ',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: 'BAR',\n ind1: '1',\n ind2: '0',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['The following tag patterns are not present in the record tag field: /^FOO$/u']});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/fix-33X.spec.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = require("chai");
|
|
4
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
5
|
-
var _fix33X = _interopRequireDefault(require("./fix-33X"));
|
|
6
|
-
var _fixura = require("@natlibfi/fixura");
|
|
7
|
-
var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
(0, _fixugen.default)({
|
|
10
|
-
callback,
|
|
11
|
-
path: [__dirname, '..', 'test-fixtures', 'fix-33X'],
|
|
12
|
-
useMetadataFile: true,
|
|
13
|
-
recurse: false,
|
|
14
|
-
fixura: {
|
|
15
|
-
reader: _fixura.READERS.JSON
|
|
16
|
-
},
|
|
17
|
-
mocha: {
|
|
18
|
-
before: () => testValidatorFactory()
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
async function testValidatorFactory() {
|
|
22
|
-
const validator = await (0, _fix33X.default)();
|
|
23
|
-
(0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
24
|
-
(0, _chai.expect)(validator.description).to.be.a('string');
|
|
25
|
-
(0, _chai.expect)(validator.validate).to.be.a('function');
|
|
26
|
-
(0, _chai.expect)(validator.fix).to.be.a('function');
|
|
27
|
-
}
|
|
28
|
-
async function callback({
|
|
29
|
-
getFixture,
|
|
30
|
-
fix = false
|
|
31
|
-
}) {
|
|
32
|
-
const validator = await (0, _fix33X.default)();
|
|
33
|
-
const record = new _marcRecord.MarcRecord(getFixture('record.json'));
|
|
34
|
-
const expectedResult = getFixture('expectedResult.json');
|
|
35
|
-
// console.log(expectedResult); // eslint-disable-line
|
|
36
|
-
|
|
37
|
-
if (!fix) {
|
|
38
|
-
const result = await validator.validate(record);
|
|
39
|
-
(0, _chai.expect)(result).to.eql(expectedResult);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
await validator.fix(record);
|
|
43
|
-
(0, _chai.expect)(record).to.eql(expectedResult);
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=fix-33X.spec.js.map
|
package/dist/fix-33X.spec.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-33X.spec.js","names":["_chai","require","_marcRecord","_fix33X","_interopRequireDefault","_fixura","_fixugen","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","fix","getFixture","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fix-33X.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-33X';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-33X'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n expect(validator.fix).to.be.a('function');\n}\n\nasync function callback({getFixture, fix = false}) {\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n expect(result).to.eql(expectedResult);\n return;\n }\n\n await validator.fix(record);\n expect(record).to.eql(expectedResult);\n}\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AAA8C,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC;EACnDC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE;IACNC,MAAM,EAAEC,eAAO,CAACC;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAMC,oBAAoB,CAAC;EACrC;AACF,CAAC,CAAC;AAEF,eAAeA,oBAAoBA,CAAA,EAAG;EACpC,MAAMC,SAAS,GAAG,MAAM,IAAAC,eAAgB,EAAC,CAAC;EAE1C,IAAAC,YAAM,EAACF,SAAS,CAAC,CACdG,EAAE,CAACC,EAAE,CAACC,EAAE,CAAC,QAAQ,CAAC,CAClBC,IAAI,CAACC,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;EAE/C,IAAAP,YAAM,EAACF,SAAS,CAACU,WAAW,CAAC,CAACP,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,QAAQ,CAAC;EAC/C,IAAAT,YAAM,EAACF,SAAS,CAACY,QAAQ,CAAC,CAACT,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;EAC9C,IAAAT,YAAM,EAACF,SAAS,CAACa,GAAG,CAAC,CAACV,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAC3C;AAEA,eAAevB,QAAQA,CAAC;EAAC0B,UAAU;EAAED,GAAG,GAAG;AAAK,CAAC,EAAE;EACjD,MAAMb,SAAS,GAAG,MAAM,IAAAC,eAAgB,EAAC,CAAC;EAC1C,MAAMc,MAAM,GAAG,IAAIC,sBAAU,CAACF,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMG,cAAc,GAAGH,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACD,GAAG,EAAE;IACR,MAAMK,MAAM,GAAG,MAAMlB,SAAS,CAACY,QAAQ,CAACG,MAAM,CAAC;IAC/C,IAAAb,YAAM,EAACgB,MAAM,CAAC,CAACf,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMjB,SAAS,CAACa,GAAG,CAACE,MAAM,CAAC;EAC3B,IAAAb,YAAM,EAACa,MAAM,CAAC,CAACZ,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = require("chai");
|
|
4
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
5
|
-
var _fixCountryCodes = _interopRequireDefault(require("./fix-country-codes"));
|
|
6
|
-
var _fixura = require("@natlibfi/fixura");
|
|
7
|
-
var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
|
|
8
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
(0, _fixugen.default)({
|
|
11
|
-
callback,
|
|
12
|
-
path: [__dirname, '..', 'test-fixtures', 'fix-country-codes'],
|
|
13
|
-
useMetadataFile: true,
|
|
14
|
-
recurse: false,
|
|
15
|
-
fixura: {
|
|
16
|
-
reader: _fixura.READERS.JSON
|
|
17
|
-
},
|
|
18
|
-
mocha: {
|
|
19
|
-
before: () => testValidatorFactory()
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const debug = (0, _debug.default)('@natlibfi/marc-record-validators-melinda/fix-country-codes:test');
|
|
23
|
-
async function testValidatorFactory() {
|
|
24
|
-
const validator = await (0, _fixCountryCodes.default)();
|
|
25
|
-
(0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
26
|
-
(0, _chai.expect)(validator.description).to.be.a('string');
|
|
27
|
-
(0, _chai.expect)(validator.validate).to.be.a('function');
|
|
28
|
-
}
|
|
29
|
-
async function callback({
|
|
30
|
-
getFixture,
|
|
31
|
-
enabled = true,
|
|
32
|
-
fix = false
|
|
33
|
-
}) {
|
|
34
|
-
if (enabled === false) {
|
|
35
|
-
debug('TEST SKIPPED!');
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const validator = await (0, _fixCountryCodes.default)();
|
|
39
|
-
const record = new _marcRecord.MarcRecord(getFixture('record.json'));
|
|
40
|
-
const expectedResult = getFixture('expectedResult.json');
|
|
41
|
-
// console.log(expectedResult); // eslint-disable-line
|
|
42
|
-
|
|
43
|
-
if (!fix) {
|
|
44
|
-
const result = await validator.validate(record);
|
|
45
|
-
(0, _chai.expect)(result).to.eql(expectedResult);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
await validator.fix(record);
|
|
49
|
-
(0, _chai.expect)(record).to.eql(expectedResult);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=fix-country-codes.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-country-codes.spec.js","names":["_chai","require","_marcRecord","_fixCountryCodes","_interopRequireDefault","_fixura","_fixugen","_debug","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","debug","createDebugLogger","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","getFixture","enabled","fix","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fix-country-codes.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-country-codes';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\nimport createDebugLogger from 'debug';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-country-codes'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\nconst debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/fix-country-codes:test');\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n}\n\nasync function callback({getFixture, enabled = true, fix = false}) {\n if (enabled === false) {\n debug('TEST SKIPPED!');\n return;\n }\n\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n expect(result).to.eql(expectedResult);\n return;\n }\n\n await validator.fix(record);\n expect(record).to.eql(expectedResult);\n}\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,MAAA,GAAAH,sBAAA,CAAAH,OAAA;AAAsC,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC;EAC7DC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE;IACNC,MAAM,EAAEC,eAAO,CAACC;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAMC,oBAAoB,CAAC;EACrC;AACF,CAAC,CAAC;AACF,MAAMC,KAAK,GAAG,IAAAC,cAAiB,EAAC,iEAAiE,CAAC;AAElG,eAAeF,oBAAoBA,CAAA,EAAG;EACpC,MAAMG,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAE1C,IAAAC,YAAM,EAACF,SAAS,CAAC,CACdG,EAAE,CAACC,EAAE,CAACC,EAAE,CAAC,QAAQ,CAAC,CAClBC,IAAI,CAACC,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;EAE/C,IAAAP,YAAM,EAACF,SAAS,CAACU,WAAW,CAAC,CAACP,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,QAAQ,CAAC;EAC/C,IAAAT,YAAM,EAACF,SAAS,CAACY,QAAQ,CAAC,CAACT,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAChD;AAEA,eAAezB,QAAQA,CAAC;EAAC2B,UAAU;EAAEC,OAAO,GAAG,IAAI;EAAEC,GAAG,GAAG;AAAK,CAAC,EAAE;EACjE,IAAID,OAAO,KAAK,KAAK,EAAE;IACrBhB,KAAK,CAAC,eAAe,CAAC;IACtB;EACF;EAEA,MAAME,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAC1C,MAAMe,MAAM,GAAG,IAAIC,sBAAU,CAACJ,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMK,cAAc,GAAGL,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACE,GAAG,EAAE;IACR,MAAMI,MAAM,GAAG,MAAMnB,SAAS,CAACY,QAAQ,CAACI,MAAM,CAAC;IAC/C,IAAAd,YAAM,EAACiB,MAAM,CAAC,CAAChB,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMlB,SAAS,CAACe,GAAG,CAACC,MAAM,CAAC;EAC3B,IAAAd,YAAM,EAACc,MAAM,CAAC,CAACb,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = require("chai");
|
|
4
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
5
|
-
var _fixLanguageCodes = _interopRequireDefault(require("./fix-language-codes"));
|
|
6
|
-
var _fixura = require("@natlibfi/fixura");
|
|
7
|
-
var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
(0, _fixugen.default)({
|
|
10
|
-
callback,
|
|
11
|
-
path: [__dirname, '..', 'test-fixtures', 'fix-language-codes'],
|
|
12
|
-
useMetadataFile: true,
|
|
13
|
-
recurse: false,
|
|
14
|
-
fixura: {
|
|
15
|
-
reader: _fixura.READERS.JSON
|
|
16
|
-
},
|
|
17
|
-
mocha: {
|
|
18
|
-
before: () => testValidatorFactory()
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
async function testValidatorFactory() {
|
|
22
|
-
const validator = await (0, _fixLanguageCodes.default)();
|
|
23
|
-
(0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
24
|
-
(0, _chai.expect)(validator.description).to.be.a('string');
|
|
25
|
-
(0, _chai.expect)(validator.validate).to.be.a('function');
|
|
26
|
-
}
|
|
27
|
-
async function callback({
|
|
28
|
-
getFixture,
|
|
29
|
-
fix = false
|
|
30
|
-
}) {
|
|
31
|
-
const validator = await (0, _fixLanguageCodes.default)();
|
|
32
|
-
const record = new _marcRecord.MarcRecord(getFixture('record.json'));
|
|
33
|
-
const expectedResult = getFixture('expectedResult.json');
|
|
34
|
-
// console.log(expectedResult); // eslint-disable-line
|
|
35
|
-
|
|
36
|
-
if (!fix) {
|
|
37
|
-
const result = await validator.validate(record);
|
|
38
|
-
(0, _chai.expect)(result).to.eql(expectedResult);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
await validator.fix(record);
|
|
42
|
-
(0, _chai.expect)(record).to.eql(expectedResult);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=fix-language-codes.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fix-language-codes.spec.js","names":["_chai","require","_marcRecord","_fixLanguageCodes","_interopRequireDefault","_fixura","_fixugen","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","getFixture","fix","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fix-language-codes.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fix-language-codes';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-language-codes'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n}\n\nasync function callback({getFixture, fix = false}) {\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n expect(result).to.eql(expectedResult);\n return;\n }\n\n await validator.fix(record);\n expect(record).to.eql(expectedResult);\n}\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AAA8C,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,CAAC;EAC9DC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE;IACNC,MAAM,EAAEC,eAAO,CAACC;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAMC,oBAAoB,CAAC;EACrC;AACF,CAAC,CAAC;AAEF,eAAeA,oBAAoBA,CAAA,EAAG;EACpC,MAAMC,SAAS,GAAG,MAAM,IAAAC,yBAAgB,EAAC,CAAC;EAE1C,IAAAC,YAAM,EAACF,SAAS,CAAC,CACdG,EAAE,CAACC,EAAE,CAACC,EAAE,CAAC,QAAQ,CAAC,CAClBC,IAAI,CAACC,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;EAE/C,IAAAP,YAAM,EAACF,SAAS,CAACU,WAAW,CAAC,CAACP,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,QAAQ,CAAC;EAC/C,IAAAT,YAAM,EAACF,SAAS,CAACY,QAAQ,CAAC,CAACT,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAChD;AAEA,eAAevB,QAAQA,CAAC;EAACyB,UAAU;EAAEC,GAAG,GAAG;AAAK,CAAC,EAAE;EACjD,MAAMd,SAAS,GAAG,MAAM,IAAAC,yBAAgB,EAAC,CAAC;EAC1C,MAAMc,MAAM,GAAG,IAAIC,sBAAU,CAACH,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMI,cAAc,GAAGJ,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACC,GAAG,EAAE;IACR,MAAMI,MAAM,GAAG,MAAMlB,SAAS,CAACY,QAAQ,CAACG,MAAM,CAAC;IAC/C,IAAAb,YAAM,EAACgB,MAAM,CAAC,CAACf,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMjB,SAAS,CAACc,GAAG,CAACC,MAAM,CAAC;EAC3B,IAAAb,YAAM,EAACa,MAAM,CAAC,CAACZ,EAAE,CAACgB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = require("chai");
|
|
4
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
5
|
-
var _fixRelatorTerms = _interopRequireDefault(require("./fixRelatorTerms"));
|
|
6
|
-
var _fixura = require("@natlibfi/fixura");
|
|
7
|
-
var _fixugen = _interopRequireDefault(require("@natlibfi/fixugen"));
|
|
8
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
(0, _fixugen.default)({
|
|
11
|
-
callback,
|
|
12
|
-
path: [__dirname, '..', 'test-fixtures', 'fix-relator-terms'],
|
|
13
|
-
useMetadataFile: true,
|
|
14
|
-
recurse: false,
|
|
15
|
-
fixura: {
|
|
16
|
-
reader: _fixura.READERS.JSON
|
|
17
|
-
},
|
|
18
|
-
mocha: {
|
|
19
|
-
before: () => testValidatorFactory()
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const debug = (0, _debug.default)('@natlibfi/marc-record-validators-melinda/fixRelatorTerms:test');
|
|
23
|
-
async function testValidatorFactory() {
|
|
24
|
-
const validator = await (0, _fixRelatorTerms.default)();
|
|
25
|
-
(0, _chai.expect)(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
26
|
-
(0, _chai.expect)(validator.description).to.be.a('string');
|
|
27
|
-
(0, _chai.expect)(validator.validate).to.be.a('function');
|
|
28
|
-
}
|
|
29
|
-
async function callback({
|
|
30
|
-
getFixture,
|
|
31
|
-
enabled = true,
|
|
32
|
-
fix = false
|
|
33
|
-
}) {
|
|
34
|
-
if (enabled === false) {
|
|
35
|
-
debug('TEST SKIPPED!');
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const validator = await (0, _fixRelatorTerms.default)();
|
|
39
|
-
const record = new _marcRecord.MarcRecord(getFixture('record.json'));
|
|
40
|
-
const expectedResult = getFixture('expectedResult.json');
|
|
41
|
-
// console.log(expectedResult); // eslint-disable-line
|
|
42
|
-
|
|
43
|
-
if (!fix) {
|
|
44
|
-
const result = await validator.validate(record);
|
|
45
|
-
(0, _chai.expect)(result).to.eql(expectedResult);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
await validator.fix(record);
|
|
49
|
-
(0, _chai.expect)(record).to.eql(expectedResult);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=fixRelatorTerms.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixRelatorTerms.spec.js","names":["_chai","require","_marcRecord","_fixRelatorTerms","_interopRequireDefault","_fixura","_fixugen","_debug","e","__esModule","default","generateTests","callback","path","__dirname","useMetadataFile","recurse","fixura","reader","READERS","JSON","mocha","before","testValidatorFactory","debug","createDebugLogger","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","getFixture","enabled","fix","record","MarcRecord","expectedResult","result","eql"],"sources":["../src/fixRelatorTerms.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './fixRelatorTerms';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\nimport createDebugLogger from 'debug';\n\ngenerateTests({\n callback,\n path: [__dirname, '..', 'test-fixtures', 'fix-relator-terms'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n mocha: {\n before: () => testValidatorFactory()\n }\n});\nconst debug = createDebugLogger('@natlibfi/marc-record-validators-melinda/fixRelatorTerms:test');\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n}\n\nasync function callback({getFixture, enabled = true, fix = false}) {\n if (enabled === false) {\n debug('TEST SKIPPED!');\n return;\n }\n\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n expect(result).to.eql(expectedResult);\n return;\n }\n\n await validator.fix(record);\n expect(record).to.eql(expectedResult);\n}\n"],"mappings":";;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,MAAA,GAAAH,sBAAA,CAAAH,OAAA;AAAsC,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtC,IAAAG,gBAAa,EAAC;EACZC,QAAQ;EACRC,IAAI,EAAE,CAACC,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC;EAC7DC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE;IACNC,MAAM,EAAEC,eAAO,CAACC;EAClB,CAAC;EACDC,KAAK,EAAE;IACLC,MAAM,EAAEA,CAAA,KAAMC,oBAAoB,CAAC;EACrC;AACF,CAAC,CAAC;AACF,MAAMC,KAAK,GAAG,IAAAC,cAAiB,EAAC,+DAA+D,CAAC;AAEhG,eAAeF,oBAAoBA,CAAA,EAAG;EACpC,MAAMG,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAE1C,IAAAC,YAAM,EAACF,SAAS,CAAC,CACdG,EAAE,CAACC,EAAE,CAACC,EAAE,CAAC,QAAQ,CAAC,CAClBC,IAAI,CAACC,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;EAE/C,IAAAP,YAAM,EAACF,SAAS,CAACU,WAAW,CAAC,CAACP,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,QAAQ,CAAC;EAC/C,IAAAT,YAAM,EAACF,SAAS,CAACY,QAAQ,CAAC,CAACT,EAAE,CAACC,EAAE,CAACO,CAAC,CAAC,UAAU,CAAC;AAChD;AAEA,eAAezB,QAAQA,CAAC;EAAC2B,UAAU;EAAEC,OAAO,GAAG,IAAI;EAAEC,GAAG,GAAG;AAAK,CAAC,EAAE;EACjE,IAAID,OAAO,KAAK,KAAK,EAAE;IACrBhB,KAAK,CAAC,eAAe,CAAC;IACtB;EACF;EAEA,MAAME,SAAS,GAAG,MAAM,IAAAC,wBAAgB,EAAC,CAAC;EAC1C,MAAMe,MAAM,GAAG,IAAIC,sBAAU,CAACJ,UAAU,CAAC,aAAa,CAAC,CAAC;EACxD,MAAMK,cAAc,GAAGL,UAAU,CAAC,qBAAqB,CAAC;EACxD;;EAEA,IAAI,CAACE,GAAG,EAAE;IACR,MAAMI,MAAM,GAAG,MAAMnB,SAAS,CAACY,QAAQ,CAACI,MAAM,CAAC;IAC/C,IAAAd,YAAM,EAACiB,MAAM,CAAC,CAAChB,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;IACrC;EACF;EAEA,MAAMlB,SAAS,CAACe,GAAG,CAACC,MAAM,CAAC;EAC3B,IAAAd,YAAM,EAACc,MAAM,CAAC,CAACb,EAAE,CAACiB,GAAG,CAACF,cAAc,CAAC;AACvC","ignoreList":[]}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _chai = _interopRequireDefault(require("chai"));
|
|
4
|
-
var _chaiAsPromised = _interopRequireDefault(require("chai-as-promised"));
|
|
5
|
-
var _marcRecord = require("@natlibfi/marc-record");
|
|
6
|
-
var _fixedFields = _interopRequireDefault(require("../src/fixed-fields"));
|
|
7
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
-
const {
|
|
9
|
-
expect
|
|
10
|
-
} = _chai.default;
|
|
11
|
-
_chai.default.use(_chaiAsPromised.default);
|
|
12
|
-
describe('fixed-fields: language', () => {
|
|
13
|
-
it('Creates a validator', async () => {
|
|
14
|
-
const validator = await (0, _fixedFields.default)([]);
|
|
15
|
-
expect(validator).to.be.an('object').that.has.any.keys('description', 'validate');
|
|
16
|
-
expect(validator.description).to.be.a('string');
|
|
17
|
-
expect(validator.validate).to.be.a('function');
|
|
18
|
-
});
|
|
19
|
-
it('Throws an error when configuration is not provided', () => {
|
|
20
|
-
try {
|
|
21
|
-
(0, _fixedFields.default)();
|
|
22
|
-
} catch (error) {
|
|
23
|
-
expect(error).to.be.an('error').with.property('message', 'No configuration provided');
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
describe('#validate', () => {
|
|
27
|
-
it('Finds the record valid', async () => {
|
|
28
|
-
const validator = await (0, _fixedFields.default)([{
|
|
29
|
-
leader: true,
|
|
30
|
-
length: 6,
|
|
31
|
-
rules: [{
|
|
32
|
-
position: [0, 6],
|
|
33
|
-
pattern: /[abcdefg]/u
|
|
34
|
-
}]
|
|
35
|
-
}, {
|
|
36
|
-
tag: /^FOO$/u,
|
|
37
|
-
length: 12,
|
|
38
|
-
rules: [{
|
|
39
|
-
position: 0,
|
|
40
|
-
pattern: /f/u
|
|
41
|
-
}]
|
|
42
|
-
}, {
|
|
43
|
-
tag: /^BAR$/u,
|
|
44
|
-
length: 6,
|
|
45
|
-
rules: [{
|
|
46
|
-
position: 0,
|
|
47
|
-
pattern: /[fb]/u
|
|
48
|
-
}, {
|
|
49
|
-
position: 1,
|
|
50
|
-
pattern: /a/u,
|
|
51
|
-
dependencies: [{
|
|
52
|
-
position: 0,
|
|
53
|
-
pattern: /b/u
|
|
54
|
-
}]
|
|
55
|
-
}, {
|
|
56
|
-
position: [2, 3],
|
|
57
|
-
pattern: /u/u,
|
|
58
|
-
dependencies: [{
|
|
59
|
-
position: 0,
|
|
60
|
-
pattern: /[^b]/u
|
|
61
|
-
}]
|
|
62
|
-
}]
|
|
63
|
-
}]);
|
|
64
|
-
const record = new _marcRecord.MarcRecord({
|
|
65
|
-
leader: 'bacgfe',
|
|
66
|
-
fields: [{
|
|
67
|
-
tag: 'FOO',
|
|
68
|
-
value: 'foobarfoobar'
|
|
69
|
-
}, {
|
|
70
|
-
tag: 'BAR',
|
|
71
|
-
value: 'bauuoo'
|
|
72
|
-
}]
|
|
73
|
-
});
|
|
74
|
-
const result = await validator.validate(record);
|
|
75
|
-
expect(result).to.be.an('object').and.to.include({
|
|
76
|
-
valid: true
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
it('Finds the record invalid', async () => {
|
|
80
|
-
const validator = await (0, _fixedFields.default)([{
|
|
81
|
-
leader: true,
|
|
82
|
-
length: 6,
|
|
83
|
-
rules: [{
|
|
84
|
-
position: [0, 6],
|
|
85
|
-
pattern: /[abcdefg]/u
|
|
86
|
-
}]
|
|
87
|
-
}, {
|
|
88
|
-
tag: /^FOO$/u,
|
|
89
|
-
length: 12,
|
|
90
|
-
rules: [{
|
|
91
|
-
position: 0,
|
|
92
|
-
pattern: /f/u
|
|
93
|
-
}]
|
|
94
|
-
}, {
|
|
95
|
-
tag: /^BAR$/u,
|
|
96
|
-
length: 6,
|
|
97
|
-
rules: [{
|
|
98
|
-
position: 0,
|
|
99
|
-
pattern: /[fb]/u
|
|
100
|
-
}, {
|
|
101
|
-
position: 1,
|
|
102
|
-
pattern: /a/u,
|
|
103
|
-
dependencies: [{
|
|
104
|
-
position: 0,
|
|
105
|
-
pattern: /b/u
|
|
106
|
-
}]
|
|
107
|
-
}, {
|
|
108
|
-
position: [2, 3],
|
|
109
|
-
pattern: /u/u,
|
|
110
|
-
dependencies: [{
|
|
111
|
-
position: 0,
|
|
112
|
-
pattern: /[^a]/u
|
|
113
|
-
}]
|
|
114
|
-
}]
|
|
115
|
-
}, {
|
|
116
|
-
tag: /^FUB$/u,
|
|
117
|
-
length: 5
|
|
118
|
-
}]);
|
|
119
|
-
const record = new _marcRecord.MarcRecord({
|
|
120
|
-
leader: 'bacxfe',
|
|
121
|
-
fields: [{
|
|
122
|
-
tag: 'FOO',
|
|
123
|
-
value: 'barfoofoobar'
|
|
124
|
-
}, {
|
|
125
|
-
tag: 'BAR',
|
|
126
|
-
value: 'burfoo'
|
|
127
|
-
}, {
|
|
128
|
-
tag: 'FUB',
|
|
129
|
-
value: 'foo'
|
|
130
|
-
}]
|
|
131
|
-
});
|
|
132
|
-
const result = await validator.validate(record);
|
|
133
|
-
expect(result).to.eql({
|
|
134
|
-
valid: false,
|
|
135
|
-
messages: ['Leader has invalid values at positions: 3 (Rule index 0)', 'Field FOO has invalid values at positions: 0 (Rule index 0)', 'Field BAR has invalid values at positions: 1 (Rule index 1)', 'Field BAR has invalid values at positions: 2,3 (Rule index 2)', 'Field FUB has invalid length']
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
//# sourceMappingURL=fixed-fields.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-fields.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fixedFields","e","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","leader","length","rules","position","pattern","tag","dependencies","record","MarcRecord","fields","value","result","and","include","valid","eql","messages"],"sources":["../src/fixed-fields.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fixed-fields';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fixed-fields: language', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([]);\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when configuration is not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No configuration provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^b]/u}]}\n ]}\n ]);\n const record = new MarcRecord({\n leader: 'bacgfe',\n fields: [\n {\n tag: 'FOO',\n value: 'foobarfoobar'\n },\n {\n tag: 'BAR',\n value: 'bauuoo'\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.be.an('object').and.to.include({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^a]/u}]}\n ]},\n {tag: /^FUB$/u, length: 5}\n ]);\n const record = new MarcRecord({\n leader: 'bacxfe',\n fields: [\n {\n tag: 'FOO',\n value: 'barfoofoobar'\n },\n {\n tag: 'BAR',\n value: 'burfoo'\n },\n {\n tag: 'FUB',\n value: 'foo'\n }\n ]\n });\n\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'Leader has invalid values at positions: 3 (Rule index 0)',\n 'Field FOO has invalid values at positions: 0 (Rule index 0)',\n 'Field BAR has invalid values at positions: 1 (Rule index 1)',\n 'Field BAR has invalid values at positions: 2,3 (Rule index 2)',\n 'Field FUB has invalid length'\n ]});\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|