@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.
Files changed (563) hide show
  1. package/.github/workflows/{melinda-node-tests.yml → melinda-node-tests-and-publish.yml} +37 -12
  2. package/dist/access-rights.js +63 -91
  3. package/dist/access-rights.js.map +7 -1
  4. package/dist/access-rights.test.js +137 -0
  5. package/dist/access-rights.test.js.map +7 -0
  6. package/dist/addMissingField041.js +21 -53
  7. package/dist/addMissingField041.js.map +7 -1
  8. package/dist/addMissingField041.test.js +39 -0
  9. package/dist/addMissingField041.test.js.map +7 -0
  10. package/dist/addMissingField336.js +99 -191
  11. package/dist/addMissingField336.js.map +7 -1
  12. package/dist/addMissingField336.test.js +39 -0
  13. package/dist/addMissingField336.test.js.map +7 -0
  14. package/dist/addMissingField337.js +63 -132
  15. package/dist/addMissingField337.js.map +7 -1
  16. package/dist/addMissingField337.test.js +39 -0
  17. package/dist/addMissingField337.test.js.map +7 -0
  18. package/dist/addMissingField338.js +147 -253
  19. package/dist/addMissingField338.js.map +7 -1
  20. package/dist/addMissingField338.test.js +39 -0
  21. package/dist/addMissingField338.test.js.map +7 -0
  22. package/dist/cyrillux-usemarcon-replacement.js +119 -272
  23. package/dist/cyrillux-usemarcon-replacement.js.map +7 -1
  24. package/dist/cyrillux-usemarcon-replacement.test.js +43 -0
  25. package/dist/cyrillux-usemarcon-replacement.test.js.map +7 -0
  26. package/dist/cyrillux.js +119 -223
  27. package/dist/cyrillux.js.map +7 -1
  28. package/dist/cyrillux.test.js +39 -0
  29. package/dist/cyrillux.test.js.map +7 -0
  30. package/dist/disambiguateSeriesStatements.js +40 -81
  31. package/dist/disambiguateSeriesStatements.js.map +7 -1
  32. package/dist/disambiguateSeriesStatements.test.js +44 -0
  33. package/dist/disambiguateSeriesStatements.test.js.map +7 -0
  34. package/dist/double-commas.js +7 -14
  35. package/dist/double-commas.js.map +7 -1
  36. package/dist/double-commas.test.js +48 -0
  37. package/dist/double-commas.test.js.map +7 -0
  38. package/dist/duplicates-ind1.js +10 -31
  39. package/dist/duplicates-ind1.js.map +7 -1
  40. package/dist/duplicates-ind1.test.js +40 -0
  41. package/dist/duplicates-ind1.test.js.map +7 -0
  42. package/dist/empty-fields.js +10 -22
  43. package/dist/empty-fields.js.map +7 -1
  44. package/dist/empty-fields.test.js +129 -0
  45. package/dist/empty-fields.test.js.map +7 -0
  46. package/dist/ending-punctuation-conf.js +873 -769
  47. package/dist/ending-punctuation-conf.js.map +7 -1
  48. package/dist/ending-punctuation.js +156 -169
  49. package/dist/ending-punctuation.js.map +7 -1
  50. package/dist/ending-punctuation.test.js +2385 -0
  51. package/dist/ending-punctuation.test.js.map +7 -0
  52. package/dist/ending-whitespace.js +10 -35
  53. package/dist/ending-whitespace.js.map +7 -1
  54. package/dist/ending-whitespace.test.js +38 -0
  55. package/dist/ending-whitespace.test.js.map +7 -0
  56. package/dist/field-008-18-34-character-groups.js +40 -125
  57. package/dist/field-008-18-34-character-groups.js.map +7 -1
  58. package/dist/field-008-18-34-character-groups.test.js +45 -0
  59. package/dist/field-008-18-34-character-groups.test.js.map +7 -0
  60. package/dist/field-505-separators.js +19 -39
  61. package/dist/field-505-separators.js.map +7 -1
  62. package/dist/field-505-separators.test.js +45 -0
  63. package/dist/field-505-separators.test.js.map +7 -0
  64. package/dist/field-521-fix.js +19 -47
  65. package/dist/field-521-fix.js.map +7 -1
  66. package/dist/field-521-fix.test.js +44 -0
  67. package/dist/field-521-fix.test.js.map +7 -0
  68. package/dist/field-exclusion.js +37 -91
  69. package/dist/field-exclusion.js.map +7 -1
  70. package/dist/field-exclusion.test.js +821 -0
  71. package/dist/field-exclusion.test.js.map +7 -0
  72. package/dist/field-structure.js +52 -104
  73. package/dist/field-structure.js.map +7 -1
  74. package/dist/field-structure.test.js +587 -0
  75. package/dist/field-structure.test.js.map +7 -0
  76. package/dist/field33XUtils.js +119 -503
  77. package/dist/field33XUtils.js.map +7 -1
  78. package/dist/fields-present.js +11 -23
  79. package/dist/fields-present.js.map +7 -1
  80. package/dist/fields-present.test.js +95 -0
  81. package/dist/fields-present.test.js.map +7 -0
  82. package/dist/fix-33X.js +393 -431
  83. package/dist/fix-33X.js.map +7 -1
  84. package/dist/fix-33X.test.js +39 -0
  85. package/dist/fix-33X.test.js.map +7 -0
  86. package/dist/fix-country-codes.js +20 -50
  87. package/dist/fix-country-codes.js.map +7 -1
  88. package/dist/fix-country-codes.test.js +44 -0
  89. package/dist/fix-country-codes.test.js.map +7 -0
  90. package/dist/fix-language-codes.js +23 -53
  91. package/dist/fix-language-codes.js.map +7 -1
  92. package/dist/fix-language-codes.test.js +38 -0
  93. package/dist/fix-language-codes.test.js.map +7 -0
  94. package/dist/fixRelatorTerms.js +82 -209
  95. package/dist/fixRelatorTerms.js.map +7 -1
  96. package/dist/fixRelatorTerms.test.js +44 -0
  97. package/dist/fixRelatorTerms.test.js.map +7 -0
  98. package/dist/fixed-fields.js +21 -30
  99. package/dist/fixed-fields.js.map +7 -1
  100. package/dist/fixed-fields.test.js +87 -0
  101. package/dist/fixed-fields.test.js.map +7 -0
  102. package/dist/identical-fields.js +8 -24
  103. package/dist/identical-fields.js.map +7 -1
  104. package/dist/identical-fields.test.js +119 -0
  105. package/dist/identical-fields.test.js.map +7 -0
  106. package/dist/index.js +182 -413
  107. package/dist/index.js.map +7 -1
  108. package/dist/indicator-fixes.js +66 -94
  109. package/dist/indicator-fixes.js.map +7 -1
  110. package/dist/indicator-fixes.test.js +42 -0
  111. package/dist/indicator-fixes.test.js.map +7 -0
  112. package/dist/isbn-issn.js +71 -128
  113. package/dist/isbn-issn.js.map +7 -1
  114. package/dist/isbn-issn.test.js +398 -0
  115. package/dist/isbn-issn.test.js.map +7 -0
  116. package/dist/item-language.js +32 -65
  117. package/dist/item-language.js.map +7 -1
  118. package/dist/item-language.test.js +322 -0
  119. package/dist/item-language.test.js.map +7 -0
  120. package/dist/melindaCustomMergeFields.js +5182 -11233
  121. package/dist/melindaCustomMergeFields.js.map +7 -1
  122. package/dist/merge-fields/controlSubfields.js +75 -142
  123. package/dist/merge-fields/controlSubfields.js.map +7 -1
  124. package/dist/merge-fields/counterpartField.js +187 -379
  125. package/dist/merge-fields/counterpartField.js.map +7 -1
  126. package/dist/merge-fields/dataProvenance.js +29 -0
  127. package/dist/merge-fields/dataProvenance.js.map +7 -0
  128. package/dist/merge-fields/index.js +25 -50
  129. package/dist/merge-fields/index.js.map +7 -1
  130. package/dist/merge-fields/mergableIndicator.js +18 -51
  131. package/dist/merge-fields/mergableIndicator.js.map +7 -1
  132. package/dist/merge-fields/mergableTag.js +78 -30
  133. package/dist/merge-fields/mergableTag.js.map +7 -1
  134. package/dist/merge-fields/mergeConfig.js +66 -171
  135. package/dist/merge-fields/mergeConfig.js.map +7 -1
  136. package/dist/merge-fields/mergeConstraints.js +323 -1214
  137. package/dist/merge-fields/mergeConstraints.js.map +7 -1
  138. package/dist/merge-fields/mergeField.js +47 -111
  139. package/dist/merge-fields/mergeField.js.map +7 -1
  140. package/dist/merge-fields/mergeIndicator.js +64 -118
  141. package/dist/merge-fields/mergeIndicator.js.map +7 -1
  142. package/dist/merge-fields/mergeOrAddPostprocess.js +14 -38
  143. package/dist/merge-fields/mergeOrAddPostprocess.js.map +7 -1
  144. package/dist/merge-fields/mergeOrAddSubfield.js +62 -104
  145. package/dist/merge-fields/mergeOrAddSubfield.js.map +7 -1
  146. package/dist/merge-fields/mergeSubfield.js +47 -95
  147. package/dist/merge-fields/mergeSubfield.js.map +7 -1
  148. package/dist/merge-fields/removeDuplicateSubfields.js +18 -31
  149. package/dist/merge-fields/removeDuplicateSubfields.js.map +7 -1
  150. package/dist/merge-fields/worldKnowledge.js +15 -40
  151. package/dist/merge-fields/worldKnowledge.js.map +7 -1
  152. package/dist/merge-fields.test.js +46 -0
  153. package/dist/merge-fields.test.js.map +7 -0
  154. package/dist/mergeField500Lisapainokset.js +27 -56
  155. package/dist/mergeField500Lisapainokset.js.map +7 -1
  156. package/dist/mergeField500Lisapainokset.test.js +44 -0
  157. package/dist/mergeField500Lisapainokset.test.js.map +7 -0
  158. package/dist/mergeRelatorTermFields.js +33 -69
  159. package/dist/mergeRelatorTermFields.js.map +7 -1
  160. package/dist/mergeRelatorTermFields.test.js +44 -0
  161. package/dist/mergeRelatorTermFields.test.js.map +7 -0
  162. package/dist/modernize-502.js +23 -55
  163. package/dist/modernize-502.js.map +7 -1
  164. package/dist/modernize-502.test.js +38 -0
  165. package/dist/modernize-502.test.js.map +7 -0
  166. package/dist/multiple-subfield-0.js +23 -48
  167. package/dist/multiple-subfield-0.js.map +7 -1
  168. package/dist/multiple-subfield-0.test.js +44 -0
  169. package/dist/multiple-subfield-0.test.js.map +7 -0
  170. package/dist/non-breaking-space.js +11 -32
  171. package/dist/non-breaking-space.js.map +7 -1
  172. package/dist/non-breaking-space.test.js +38 -0
  173. package/dist/non-breaking-space.test.js.map +7 -0
  174. package/dist/normalize-dashes.js +18 -37
  175. package/dist/normalize-dashes.js.map +7 -1
  176. package/dist/normalize-dashes.test.js +44 -0
  177. package/dist/normalize-dashes.test.js.map +7 -0
  178. package/dist/normalize-identifiers.js +54 -140
  179. package/dist/normalize-identifiers.js.map +7 -1
  180. package/dist/normalize-identifiers.test.js +44 -0
  181. package/dist/normalize-identifiers.test.js.map +7 -0
  182. package/dist/normalize-qualifying-information.js +23 -48
  183. package/dist/normalize-qualifying-information.js.map +7 -1
  184. package/dist/normalize-qualifying-information.test.js +44 -0
  185. package/dist/normalize-qualifying-information.test.js.map +7 -0
  186. package/dist/normalize-utf8-diacritics.js +19 -105
  187. package/dist/normalize-utf8-diacritics.js.map +7 -1
  188. package/dist/normalize-utf8-diacritics.test.js +44 -0
  189. package/dist/normalize-utf8-diacritics.test.js.map +7 -0
  190. package/dist/normalizeFieldForComparison.js +91 -158
  191. package/dist/normalizeFieldForComparison.js.map +7 -1
  192. package/dist/normalizeSubfieldValueForComparison.js +37 -77
  193. package/dist/normalizeSubfieldValueForComparison.js.map +7 -1
  194. package/dist/prepublicationUtils.js +58 -111
  195. package/dist/prepublicationUtils.js.map +7 -1
  196. package/dist/punctuation/index.js +56 -72
  197. package/dist/punctuation/index.js.map +7 -1
  198. package/dist/punctuation/rules/aut.js +372 -331
  199. package/dist/punctuation/rules/aut.js.map +7 -1
  200. package/dist/punctuation/rules/bib.js +420 -373
  201. package/dist/punctuation/rules/bib.js.map +7 -1
  202. package/dist/punctuation/rules/index.js +7 -21
  203. package/dist/punctuation/rules/index.js.map +7 -1
  204. package/dist/punctuation.test.js +44 -0
  205. package/dist/punctuation.test.js.map +7 -0
  206. package/dist/punctuation2.js +259 -802
  207. package/dist/punctuation2.js.map +7 -1
  208. package/dist/punctuation2.test.js +44 -0
  209. package/dist/punctuation2.test.js.map +7 -0
  210. package/dist/reindexSubfield6OccurenceNumbers.js +61 -96
  211. package/dist/reindexSubfield6OccurenceNumbers.js.map +7 -1
  212. package/dist/reindexSubfield6OccurenceNumbers.test.js +44 -0
  213. package/dist/reindexSubfield6OccurenceNumbers.test.js.map +7 -0
  214. package/dist/removeDuplicateDataFields.js +102 -202
  215. package/dist/removeDuplicateDataFields.js.map +7 -1
  216. package/dist/removeDuplicateDataFields.test.js +44 -0
  217. package/dist/removeDuplicateDataFields.test.js.map +7 -0
  218. package/dist/removeInferiorDataFields.js +104 -227
  219. package/dist/removeInferiorDataFields.js.map +7 -1
  220. package/dist/removeInferiorDataFields.test.js +44 -0
  221. package/dist/removeInferiorDataFields.test.js.map +7 -0
  222. package/dist/resolvable-ext-references-melinda.js +25 -60
  223. package/dist/resolvable-ext-references-melinda.js.map +7 -1
  224. package/dist/resolvable-ext-references-melinda.test.js +160 -0
  225. package/dist/resolvable-ext-references-melinda.test.js.map +7 -0
  226. package/dist/resolveOrphanedSubfield6s.js +32 -63
  227. package/dist/resolveOrphanedSubfield6s.js.map +7 -1
  228. package/dist/resolveOrphanedSubfield6s.test.js +44 -0
  229. package/dist/resolveOrphanedSubfield6s.test.js.map +7 -0
  230. package/dist/sanitize-vocabulary-source-codes.js +27 -55
  231. package/dist/sanitize-vocabulary-source-codes.js.map +7 -1
  232. package/dist/sanitize-vocabulary-source-codes.test.js +45 -0
  233. package/dist/sanitize-vocabulary-source-codes.test.js.map +7 -0
  234. package/dist/sort-tags.js +13 -25
  235. package/dist/sort-tags.js.map +7 -1
  236. package/dist/sort-tags.test.js +261 -0
  237. package/dist/sort-tags.test.js.map +7 -0
  238. package/dist/sortFields.js +152 -222
  239. package/dist/sortFields.js.map +7 -1
  240. package/dist/sortFields.test.js +44 -0
  241. package/dist/sortFields.test.js.map +7 -0
  242. package/dist/sortRelatorTerms.js +30 -68
  243. package/dist/sortRelatorTerms.js.map +7 -1
  244. package/dist/sortRelatorTerms.test.js +44 -0
  245. package/dist/sortRelatorTerms.test.js.map +7 -0
  246. package/dist/sortSubfields.js +102 -255
  247. package/dist/sortSubfields.js.map +7 -1
  248. package/dist/sortSubfields.test.js +44 -0
  249. package/dist/sortSubfields.test.js.map +7 -0
  250. package/dist/stripPunctuation.js +13 -36
  251. package/dist/stripPunctuation.js.map +7 -1
  252. package/dist/stripPunctuation.test.js +44 -0
  253. package/dist/stripPunctuation.test.js.map +7 -0
  254. package/dist/subfield-exclusion.js +28 -75
  255. package/dist/subfield-exclusion.js.map +7 -1
  256. package/dist/subfield-exclusion.test.js +471 -0
  257. package/dist/subfield-exclusion.test.js.map +7 -0
  258. package/dist/subfield6Utils.js +107 -269
  259. package/dist/subfield6Utils.js.map +7 -1
  260. package/dist/subfield8Utils.js +26 -50
  261. package/dist/subfield8Utils.js.map +7 -1
  262. package/dist/subfieldValueNormalizations.js +40 -74
  263. package/dist/subfieldValueNormalizations.js.map +7 -1
  264. package/dist/subfieldValueNormalizations.test.js +45 -0
  265. package/dist/subfieldValueNormalizations.test.js.map +7 -0
  266. package/dist/sync-007-and-300.js +22 -53
  267. package/dist/sync-007-and-300.js.map +7 -1
  268. package/dist/sync-007-and-300.test.js +44 -0
  269. package/dist/sync-007-and-300.test.js.map +7 -0
  270. package/dist/translate-terms.js +67 -155
  271. package/dist/translate-terms.js.map +7 -1
  272. package/dist/translate-terms.test.js +54 -0
  273. package/dist/translate-terms.test.js.map +7 -0
  274. package/dist/typeOfDate-008.js +10 -25
  275. package/dist/typeOfDate-008.js.map +7 -1
  276. package/dist/typeOfDate-008.test.js +40 -0
  277. package/dist/typeOfDate-008.test.js.map +7 -0
  278. package/dist/unicode-decomposition.js +94 -107
  279. package/dist/unicode-decomposition.js.map +7 -1
  280. package/dist/unicode-decomposition.test.js +94 -0
  281. package/dist/unicode-decomposition.test.js.map +7 -0
  282. package/dist/update-field-540.js +30 -75
  283. package/dist/update-field-540.js.map +7 -1
  284. package/dist/update-field-540.test.js +44 -0
  285. package/dist/update-field-540.test.js.map +7 -0
  286. package/dist/urn.js +55 -128
  287. package/dist/urn.js.map +7 -1
  288. package/dist/urn.test.js +44 -0
  289. package/dist/urn.test.js.map +7 -0
  290. package/dist/utils.js +78 -126
  291. package/dist/utils.js.map +7 -1
  292. package/eslint.config.mjs +1 -2
  293. package/package.json +28 -101
  294. package/src/access-rights.js +1 -1
  295. package/src/{access-rights.spec.js → access-rights.test.js} +9 -10
  296. package/src/addMissingField041.js +1 -1
  297. package/src/{addMissingField336.spec.js → addMissingField041.test.js} +13 -14
  298. package/src/addMissingField336.js +3 -3
  299. package/src/{addMissingField041.spec.js → addMissingField336.test.js} +13 -14
  300. package/src/addMissingField337.js +2 -2
  301. package/src/{addMissingField337.spec.js → addMissingField337.test.js} +13 -14
  302. package/src/addMissingField338.js +2 -2
  303. package/src/{addMissingField338.spec.js → addMissingField338.test.js} +13 -14
  304. package/src/cyrillux-usemarcon-replacement.js +18 -18
  305. package/src/{cyrillux-usemarcon-replacement.spec.js → cyrillux-usemarcon-replacement.test.js} +17 -14
  306. package/src/cyrillux.js +19 -12
  307. package/src/{cyrillux.spec.js → cyrillux.test.js} +13 -14
  308. package/src/disambiguateSeriesStatements.js +2 -2
  309. package/src/{disambiguateSeriesStatements.spec.js → disambiguateSeriesStatements.test.js} +12 -13
  310. package/src/double-commas.js +1 -1
  311. package/src/{double-commas.spec.js → double-commas.test.js} +9 -11
  312. package/src/duplicates-ind1.js +1 -1
  313. package/src/{duplicates-ind1.spec.js → duplicates-ind1.test.js} +12 -13
  314. package/src/{empty-fields.spec.js → empty-fields.test.js} +11 -13
  315. package/src/ending-punctuation-conf.js +6 -5
  316. package/src/ending-punctuation.js +115 -24
  317. package/src/{ending-punctuation.spec.js → ending-punctuation.test.js} +357 -275
  318. package/src/{ending-whitespace.spec.js → ending-whitespace.test.js} +12 -13
  319. package/src/field-008-18-34-character-groups.js +2 -2
  320. package/src/{field-008-18-34-character-groups.spec.js → field-008-18-34-character-groups.test.js} +13 -13
  321. package/src/field-505-separators.js +3 -3
  322. package/src/{field-505-separators.spec.js → field-505-separators.test.js} +16 -14
  323. package/src/field-521-fix.js +2 -2
  324. package/src/{field-521-fix.spec.js → field-521-fix.test.js} +12 -13
  325. package/src/field-exclusion.js +1 -1
  326. package/src/{field-exclusion.spec.js → field-exclusion.test.js} +60 -57
  327. package/src/{field-structure.spec.js → field-structure.test.js} +29 -29
  328. package/src/{fields-present.spec.js → fields-present.test.js} +12 -15
  329. package/src/fix-33X.js +4 -4
  330. package/src/{fix-33X.spec.js → fix-33X.test.js} +13 -14
  331. package/src/fix-country-codes.js +1 -1
  332. package/src/{fix-country-codes.spec.js → fix-country-codes.test.js} +12 -13
  333. package/src/fix-language-codes.js +5 -5
  334. package/src/{fix-language-codes.spec.js → fix-language-codes.test.js} +12 -13
  335. package/src/fixRelatorTerms.js +5 -5
  336. package/src/{fixRelatorTerms.spec.js → fixRelatorTerms.test.js} +13 -13
  337. package/src/{fixed-fields.spec.js → fixed-fields.test.js} +11 -14
  338. package/src/identical-fields.js +1 -1
  339. package/src/{identical-fields.spec.js → identical-fields.test.js} +9 -11
  340. package/src/index.js +132 -59
  341. package/src/indicator-fixes.js +17 -4
  342. package/src/{indicator-fixes.spec.js → indicator-fixes.test.js} +9 -12
  343. package/src/isbn-issn.js +12 -7
  344. package/src/{isbn-issn.spec.js → isbn-issn.test.js} +20 -22
  345. package/src/{item-language.spec.js → item-language.test.js} +21 -22
  346. package/src/melindaCustomMergeFields.js +1 -1
  347. package/src/merge-fields/controlSubfields.js +1 -1
  348. package/src/merge-fields/counterpartField.js +14 -9
  349. package/src/merge-fields/dataProvenance.js +41 -0
  350. package/src/merge-fields/index.js +12 -3
  351. package/src/merge-fields/mergableIndicator.js +1 -1
  352. package/src/merge-fields/mergeField.js +8 -8
  353. package/src/merge-fields/mergeIndicator.js +1 -1
  354. package/src/merge-fields/mergeOrAddPostprocess.js +4 -4
  355. package/src/merge-fields/mergeOrAddSubfield.js +2 -2
  356. package/src/merge-fields/mergeSubfield.js +4 -4
  357. package/src/merge-fields/removeDuplicateSubfields.js +2 -2
  358. package/src/{merge-fields.spec.js → merge-fields.test.js} +18 -15
  359. package/src/mergeField500Lisapainokset.js +1 -1
  360. package/src/{mergeField500Lisapainokset.spec.js → mergeField500Lisapainokset.test.js} +12 -13
  361. package/src/mergeRelatorTermFields.js +5 -7
  362. package/src/{mergeRelatorTermFields.spec.js → mergeRelatorTermFields.test.js} +12 -13
  363. package/src/modernize-502.js +1 -1
  364. package/src/{modernize-502.spec.js → modernize-502.test.js} +12 -13
  365. package/src/multiple-subfield-0.js +3 -3
  366. package/src/{multiple-subfield-0.spec.js → multiple-subfield-0.test.js} +13 -13
  367. package/src/{non-breaking-space.spec.js → non-breaking-space.test.js} +12 -13
  368. package/src/normalize-dashes.js +2 -2
  369. package/src/{normalize-dashes.spec.js → normalize-dashes.test.js} +12 -13
  370. package/src/normalize-identifiers.js +1 -1
  371. package/src/{normalize-identifiers.spec.js → normalize-identifiers.test.js} +12 -13
  372. package/src/normalize-qualifying-information.js +2 -2
  373. package/src/{normalize-qualifying-information.spec.js → normalize-qualifying-information.test.js} +12 -13
  374. package/src/normalize-utf8-diacritics.js +2 -2
  375. package/src/{normalize-utf8-diacritics.spec.js → normalize-utf8-diacritics.test.js} +13 -13
  376. package/src/normalizeFieldForComparison.js +32 -6
  377. package/src/normalizeSubfieldValueForComparison.js +1 -1
  378. package/src/prepublicationUtils.js +4 -4
  379. package/src/punctuation/index.js +1 -1
  380. package/src/punctuation/rules/index.js +2 -2
  381. package/src/{punctuation.spec.js → punctuation.test.js} +12 -13
  382. package/src/punctuation2.js +17 -8
  383. package/src/{punctuation2.spec.js → punctuation2.test.js} +12 -13
  384. package/src/reindexSubfield6OccurenceNumbers.js +5 -7
  385. package/src/{reindexSubfield6OccurenceNumbers.spec.js → reindexSubfield6OccurenceNumbers.test.js} +12 -13
  386. package/src/removeDuplicateDataFields.js +11 -19
  387. package/src/{removeDuplicateDataFields.spec.js → removeDuplicateDataFields.test.js} +12 -13
  388. package/src/removeInferiorDataFields.js +15 -12
  389. package/src/{removeInferiorDataFields.spec.js → removeInferiorDataFields.test.js} +13 -13
  390. package/src/resolvable-ext-references-melinda.js +1 -1
  391. package/src/{resolvable-ext-references-melinda.spec.js → resolvable-ext-references-melinda.test.js} +42 -27
  392. package/src/resolveOrphanedSubfield6s.js +6 -6
  393. package/src/{resolveOrphanedSubfield6s.spec.js → resolveOrphanedSubfield6s.test.js} +13 -13
  394. package/src/sanitize-vocabulary-source-codes.js +4 -4
  395. package/src/{sanitize-vocabulary-source-codes.spec.js → sanitize-vocabulary-source-codes.test.js} +16 -14
  396. package/src/{sort-tags.spec.js → sort-tags.test.js} +9 -11
  397. package/src/sortFields.js +4 -4
  398. package/src/{sortFields.spec.js → sortFields.test.js} +12 -13
  399. package/src/sortRelatorTerms.js +3 -3
  400. package/src/{sortRelatorTerms.spec.js → sortRelatorTerms.test.js} +13 -13
  401. package/src/sortSubfields.js +8 -6
  402. package/src/{sortSubfields.spec.js → sortSubfields.test.js} +13 -13
  403. package/src/stripPunctuation.js +3 -3
  404. package/src/{stripPunctuation.spec.js → stripPunctuation.test.js} +13 -13
  405. package/src/subfield-exclusion.js +1 -1
  406. package/src/{subfield-exclusion.spec.js → subfield-exclusion.test.js} +45 -36
  407. package/src/subfield6Utils.js +6 -10
  408. package/src/subfield8Utils.js +4 -4
  409. package/src/subfieldValueNormalizations.js +3 -3
  410. package/src/{subfieldValueNormalizations.spec.js → subfieldValueNormalizations.test.js} +18 -14
  411. package/src/sync-007-and-300.js +2 -2
  412. package/src/{sync-007-and-300.spec.js → sync-007-and-300.test.js} +13 -13
  413. package/src/translate-terms.js +3 -3
  414. package/src/translate-terms.test.js +75 -0
  415. package/src/{typeOfDate-008.spec.js → typeOfDate-008.test.js} +12 -13
  416. package/src/{unicode-decomposition.spec.js → unicode-decomposition.test.js} +10 -16
  417. package/src/update-field-540.js +2 -2
  418. package/src/{update-field-540.spec.js → update-field-540.test.js} +13 -10
  419. package/src/urn.js +2 -2
  420. package/src/{urn.spec.js → urn.test.js} +12 -13
  421. package/src/utils.js +21 -5
  422. package/test-fixtures/field-505-separators/03/expectedResult.json +3 -1
  423. package/test-fixtures/field-505-separators/03/record.json +3 -0
  424. package/test-fixtures/indicator-fixes/10/expectedResult.json +11 -0
  425. package/test-fixtures/indicator-fixes/10/metadata.json +4 -0
  426. package/test-fixtures/indicator-fixes/10/record.json +11 -0
  427. package/test-fixtures/merge-fields/f05/expectedResult.json +24 -0
  428. package/test-fixtures/merge-fields/f05/metadata.json +6 -0
  429. package/test-fixtures/merge-fields/f05/record.json +30 -0
  430. package/test-fixtures/normalize-subfield-value/01/metadata.json +4 -1
  431. package/test-fixtures/normalize-subfield-value/01/record.json +3 -0
  432. package/test-fixtures/normalize-subfield-value/02/expectedResult.json +3 -1
  433. package/test-fixtures/normalize-subfield-value/02/metadata.json +2 -1
  434. package/test-fixtures/normalize-subfield-value/02/record.json +3 -0
  435. package/test-fixtures/remove-inferior-datafields/f16/expectedResult.json +12 -0
  436. package/test-fixtures/remove-inferior-datafields/f16/metadata.json +5 -0
  437. package/test-fixtures/remove-inferior-datafields/f16/record.json +14 -0
  438. package/test-fixtures/sanitize-vocabulary-source-codes/f03/expectedResult.json +3 -1
  439. package/test-fixtures/sanitize-vocabulary-source-codes/f04/expectedResult.json +3 -1
  440. package/test-fixtures/sanitize-vocabulary-source-codes/v04/metadata.json +1 -4
  441. package/test-fixtures/sanitize-vocabulary-source-codes/v04/record.json +1 -1
  442. package/test-fixtures/translate-terms-data.js +42 -0
  443. package/dist/access-rights.spec.js +0 -195
  444. package/dist/access-rights.spec.js.map +0 -1
  445. package/dist/addMissingField041.spec.js +0 -45
  446. package/dist/addMissingField041.spec.js.map +0 -1
  447. package/dist/addMissingField336.spec.js +0 -45
  448. package/dist/addMissingField336.spec.js.map +0 -1
  449. package/dist/addMissingField337.spec.js +0 -43
  450. package/dist/addMissingField337.spec.js.map +0 -1
  451. package/dist/addMissingField338.spec.js +0 -45
  452. package/dist/addMissingField338.spec.js.map +0 -1
  453. package/dist/cyrillux-usemarcon-replacement.spec.js +0 -45
  454. package/dist/cyrillux-usemarcon-replacement.spec.js.map +0 -1
  455. package/dist/cyrillux.spec.js +0 -46
  456. package/dist/cyrillux.spec.js.map +0 -1
  457. package/dist/disambiguateSeriesStatements.spec.js +0 -51
  458. package/dist/disambiguateSeriesStatements.spec.js.map +0 -1
  459. package/dist/double-commas.spec.js +0 -73
  460. package/dist/double-commas.spec.js.map +0 -1
  461. package/dist/duplicates-ind1.spec.js +0 -45
  462. package/dist/duplicates-ind1.spec.js.map +0 -1
  463. package/dist/empty-fields.spec.js +0 -118
  464. package/dist/empty-fields.spec.js.map +0 -1
  465. package/dist/ending-punctuation.spec.js +0 -2654
  466. package/dist/ending-punctuation.spec.js.map +0 -1
  467. package/dist/ending-whitespace.spec.js +0 -42
  468. package/dist/ending-whitespace.spec.js.map +0 -1
  469. package/dist/field-008-18-34-character-groups.spec.js +0 -51
  470. package/dist/field-008-18-34-character-groups.spec.js.map +0 -1
  471. package/dist/field-505-separators.spec.js +0 -51
  472. package/dist/field-505-separators.spec.js.map +0 -1
  473. package/dist/field-521-fix.spec.js +0 -51
  474. package/dist/field-521-fix.spec.js.map +0 -1
  475. package/dist/field-exclusion.spec.js +0 -1054
  476. package/dist/field-exclusion.spec.js.map +0 -1
  477. package/dist/field-structure.spec.js +0 -535
  478. package/dist/field-structure.spec.js.map +0 -1
  479. package/dist/fields-present.spec.js +0 -121
  480. package/dist/fields-present.spec.js.map +0 -1
  481. package/dist/fix-33X.spec.js +0 -45
  482. package/dist/fix-33X.spec.js.map +0 -1
  483. package/dist/fix-country-codes.spec.js +0 -51
  484. package/dist/fix-country-codes.spec.js.map +0 -1
  485. package/dist/fix-language-codes.spec.js +0 -44
  486. package/dist/fix-language-codes.spec.js.map +0 -1
  487. package/dist/fixRelatorTerms.spec.js +0 -51
  488. package/dist/fixRelatorTerms.spec.js.map +0 -1
  489. package/dist/fixed-fields.spec.js +0 -140
  490. package/dist/fixed-fields.spec.js.map +0 -1
  491. package/dist/identical-fields.spec.js +0 -99
  492. package/dist/identical-fields.spec.js.map +0 -1
  493. package/dist/indicator-fixes.spec.js +0 -51
  494. package/dist/indicator-fixes.spec.js.map +0 -1
  495. package/dist/isbn-issn.spec.js +0 -595
  496. package/dist/isbn-issn.spec.js.map +0 -1
  497. package/dist/item-language.spec.js +0 -306
  498. package/dist/item-language.spec.js.map +0 -1
  499. package/dist/melindaCustomMergeFields.json +0 -5120
  500. package/dist/merge-fields.spec.js +0 -51
  501. package/dist/merge-fields.spec.js.map +0 -1
  502. package/dist/mergeField500Lisapainokset.spec.js +0 -51
  503. package/dist/mergeField500Lisapainokset.spec.js.map +0 -1
  504. package/dist/mergeRelatorTermFields.spec.js +0 -51
  505. package/dist/mergeRelatorTermFields.spec.js.map +0 -1
  506. package/dist/modernize-502.spec.js +0 -49
  507. package/dist/modernize-502.spec.js.map +0 -1
  508. package/dist/multiple-subfield-0.spec.js +0 -51
  509. package/dist/multiple-subfield-0.spec.js.map +0 -1
  510. package/dist/non-breaking-space.spec.js +0 -42
  511. package/dist/non-breaking-space.spec.js.map +0 -1
  512. package/dist/normalize-dashes.spec.js +0 -51
  513. package/dist/normalize-dashes.spec.js.map +0 -1
  514. package/dist/normalize-identifiers.spec.js +0 -51
  515. package/dist/normalize-identifiers.spec.js.map +0 -1
  516. package/dist/normalize-qualifying-information.spec.js +0 -51
  517. package/dist/normalize-qualifying-information.spec.js.map +0 -1
  518. package/dist/normalize-utf8-diacritics.spec.js +0 -51
  519. package/dist/normalize-utf8-diacritics.spec.js.map +0 -1
  520. package/dist/punctuation.spec.js +0 -51
  521. package/dist/punctuation.spec.js.map +0 -1
  522. package/dist/punctuation2.spec.js +0 -51
  523. package/dist/punctuation2.spec.js.map +0 -1
  524. package/dist/reindexSubfield6OccurenceNumbers.spec.js +0 -51
  525. package/dist/reindexSubfield6OccurenceNumbers.spec.js.map +0 -1
  526. package/dist/removeDuplicateDataFields.spec.js +0 -51
  527. package/dist/removeDuplicateDataFields.spec.js.map +0 -1
  528. package/dist/removeInferiorDataFields.spec.js +0 -51
  529. package/dist/removeInferiorDataFields.spec.js.map +0 -1
  530. package/dist/resolvable-ext-references-melinda.spec.js +0 -166
  531. package/dist/resolvable-ext-references-melinda.spec.js.map +0 -1
  532. package/dist/resolveOrphanedSubfield6s.spec.js +0 -51
  533. package/dist/resolveOrphanedSubfield6s.spec.js.map +0 -1
  534. package/dist/sanitize-vocabulary-source-codes.spec.js +0 -51
  535. package/dist/sanitize-vocabulary-source-codes.spec.js.map +0 -1
  536. package/dist/sort-tags.spec.js +0 -207
  537. package/dist/sort-tags.spec.js.map +0 -1
  538. package/dist/sortFields.spec.js +0 -51
  539. package/dist/sortFields.spec.js.map +0 -1
  540. package/dist/sortRelatorTerms.spec.js +0 -51
  541. package/dist/sortRelatorTerms.spec.js.map +0 -1
  542. package/dist/sortSubfields.spec.js +0 -52
  543. package/dist/sortSubfields.spec.js.map +0 -1
  544. package/dist/stripPunctuation.spec.js +0 -51
  545. package/dist/stripPunctuation.spec.js.map +0 -1
  546. package/dist/subfield-exclusion.spec.js +0 -523
  547. package/dist/subfield-exclusion.spec.js.map +0 -1
  548. package/dist/subfieldValueNormalizations.spec.js +0 -51
  549. package/dist/subfieldValueNormalizations.spec.js.map +0 -1
  550. package/dist/sync-007-and-300.spec.js +0 -51
  551. package/dist/sync-007-and-300.spec.js.map +0 -1
  552. package/dist/translate-terms.spec.js +0 -51
  553. package/dist/translate-terms.spec.js.map +0 -1
  554. package/dist/typeOfDate-008.spec.js +0 -47
  555. package/dist/typeOfDate-008.spec.js.map +0 -1
  556. package/dist/unicode-decomposition.spec.js +0 -91
  557. package/dist/unicode-decomposition.spec.js.map +0 -1
  558. package/dist/update-field-540.spec.js +0 -51
  559. package/dist/update-field-540.spec.js.map +0 -1
  560. package/dist/urn.spec.js +0 -52
  561. package/dist/urn.spec.js.map +0 -1
  562. package/src/melindaCustomMergeFields.json +0 -5120
  563. package/src/translate-terms.spec.js +0 -52
@@ -1,10 +1,9 @@
1
- import chai from 'chai';
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
112
- message: ['Field 245 has invalid ending punctuation', 'Field 500 has invalid ending punctuation'],
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
- expect(recordBroken.equalsTo(recordValid)).to.eql(true);
121
- expect(result).to.eql({
122
- message: ['Field 245 has invalid ending punctuation', 'Field 500 has invalid ending punctuation'],
123
- fix: ['Field 245 - Added punctuation to $c', 'Field 500 - Removed double punctuation from $a'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
205
- message: ['Field 036 has invalid ending punctuation'],
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
- expect(result).to.eql({
214
- message: ['Field 036 has invalid ending punctuation'],
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
- expect(recordInvalid.equalsTo(recordValid)).to.eql(true);
224
- expect(result).to.eql({
225
- message: ['Field 036 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyA.equalsTo(recordValidOnlyA)).to.eql(true);
235
- expect(result).to.eql({
236
- message: ['Field 036 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
389
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(result).to.eql({
398
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(result).to.eql({
407
- message: ['Field 242 has invalid ending punctuation', 'Field 242 has invalid ending punctuation'],
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
- expect(result).to.eql({
416
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(result).to.eql({
425
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyAMissingA.equalsTo(recordValidOnlyA)).to.eql(true);
435
- expect(result).to.eql({
436
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyAPuncY.equalsTo(recordValidOnlyA)).to.eql(true);
446
- expect(result).to.eql({
447
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyAMissingAPuncY.equalsTo(recordValidOnlyA)).to.eql(true);
457
- expect(result).to.eql({
458
- message: ['Field 242 has invalid ending punctuation', 'Field 242 has invalid ending punctuation'],
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
- expect(recordValidMultipleMissingP.equalsTo(recordValidMultiple)).to.eql(true);
468
- expect(result).to.eql({
469
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(recordValidWithoutYMissingA.equalsTo(recordValidWithoutY)).to.eql(true);
479
- expect(result).to.eql({
480
- message: ['Field 242 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
596
- message: ['Field 260 has invalid ending punctuation'],
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
- expect(result).to.eql({
605
- message: ['Field 260 has invalid ending punctuation'],
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
- expect(recordInvalidEndC.equalsTo(recordValidEndC)).to.eql(true);
615
- expect(result).to.eql({
616
- message: ['Field 260 has invalid ending punctuation'],
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
- expect(recordInvalidEndGDouble.equalsTo(recordValidEndG)).to.eql(true);
626
- expect(result).to.eql({
627
- message: ['Field 260 has invalid ending punctuation'],
628
- fix: ['Field 260 - Removed double punctuation from $g'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
771
- message: ['Field 264 has invalid ending punctuation'],
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
- expect(result).to.eql({
780
- message: ['Field 264 has invalid ending punctuation'],
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
- expect(recordInvalidInd2v1.equalsTo(recordValidInd2v1)).to.eql(true);
790
- expect(result).to.eql({
791
- message: ['Field 264 has invalid ending punctuation'],
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
- expect(recordInvalidCopyrightCExtra.equalsTo(recordValidCopyright)).to.eql(true);
801
- expect(result).to.eql({
802
- message: ['Field 264 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
1002
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(result).to.eql({
1011
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(result).to.eql({
1020
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(result).to.eql({
1029
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(result).to.eql({
1038
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(recordInvalidA.equalsTo(recordInvalidA)).to.eql(true);
1048
- expect(result).to.eql({
1049
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(recordInvalidAMissingB.equalsTo(recordValidAB)).to.eql(true);
1059
- expect(result).to.eql({
1060
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(recordInvalidABMissing.equalsTo(recordValidAB)).to.eql(true);
1070
- expect(result).to.eql({
1071
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(recordInvalidDDMissing.equalsTo(recordValidDD)).to.eql(true);
1081
- expect(result).to.eql({
1082
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(recordInvalidComplexDMissing.equalsTo(recordInvalidComplexDMissing)).to.eql(true);
1092
- expect(result).to.eql({
1093
- message: ['Field 340 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
1195
- message: ['Field 520 has invalid ending punctuation'],
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
- expect(result).to.eql({
1204
- message: ['Field 520 has invalid ending punctuation'],
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
- expect(recordInvalid.equalsTo(recordValid)).to.eql(true);
1214
- expect(result).to.eql({
1215
- message: ['Field 520 has invalid ending punctuation'],
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
- expect(recordInvalidWithU.equalsTo(recordValidWithU)).to.eql(true);
1225
- expect(result).to.eql({
1226
- message: ['Field 520 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
1349
- message: ['Field 538 has invalid ending punctuation'],
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
- expect(result).to.eql({
1358
- message: ['Field 538 has invalid ending punctuation'],
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
- expect(result).to.eql({
1367
- message: ['Field 538 has invalid ending punctuation'],
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
- expect(recordInvalidMissingI.equalsTo(recordValid)).to.eql(true);
1377
- expect(result).to.eql({
1378
- message: ['Field 538 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyA.equalsTo(recordValidOnlyA)).to.eql(true);
1388
- expect(result).to.eql({
1389
- message: ['Field 538 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
1471
- message: ['Field 567 has invalid ending punctuation'],
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
- expect(result).to.eql({
1480
- message: ['Field 567 has invalid ending punctuation'],
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
- expect(recordInvalid.equalsTo(recordValid)).to.eql(true);
1490
- expect(result).to.eql({
1491
- message: ['Field 567 has invalid ending punctuation'],
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
- expect(recordInvalidWithoutA.equalsTo(recordValidWithoutA)).to.eql(true);
1501
- expect(result).to.eql({
1502
- message: ['Field 567 has invalid ending punctuation'],
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 recordVali648dFinNo = new MarcRecord({
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
- expect(result.valid).to.eql(true);
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(recordVali648dFinNo);
1614
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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 recordInvali648dFinYes = new MarcRecord({
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
- expect(result).to.eql({
1737
- message: ['Field 647 has invalid ending punctuation'],
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(recordInvali648dFinYes);
1745
- expect(result).to.eql({
1746
- message: ['Field 648 has invalid ending punctuation'],
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
- expect(result).to.eql({
1755
- message: ['Field 648 has invalid ending punctuation'],
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 invalid ending punctuation';
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
- expect(result).to.eql({
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
- expect(result).to.eql({
1774
- message: [invalidField650Message],
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
- expect(result).to.eql({
1783
- message: ['Field 650 has invalid ending punctuation'],
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
- expect(recordInvalid647FastEndPunc.equalsTo(recordValid647FastEndPunc)).to.eql(true);
1793
- expect(result).to.eql({
1794
- message: ['Field 647 has invalid ending punctuation'],
1795
- fix: ['Field 647 - Removed double punctuation from $d'],
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(recordInvali648dFinYes);
1803
- expect(recordInvali648dFinYes.equalsTo(recordVali648dFinNo)).to.eql(true);
1804
- expect(result).to.eql({
1805
- message: ['Field 648 has invalid ending punctuation'],
1806
- fix: ['Field 648 - Removed punctuation from $a'],
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
- expect(recordInvalid648FastYes.equalsTo(recordValid648FastNo)).to.eql(true);
1815
- expect(result).to.eql({
1816
- message: ['Field 648 has invalid ending punctuation'],
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
- expect(recordInvalid650FinYes.equalsTo(recordValid650FinNo)).to.eql(true);
1826
- expect(result).to.eql({
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
- expect(recordInvalid650EngNoControl.equalsTo(recordValid650EngNoControl)).to.eql(true);
1837
- expect(result).to.eql({
1838
- message: ['Field 650 has invalid ending punctuation'],
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
- expect(recordInvalid650EngControl.equalsTo(recordValid650EngControl)).to.eql(true);
1848
- expect(result).to.eql({
1849
- message: ['Field 650 has invalid ending punctuation'],
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 finnish, else TRUE', () => {
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
2156
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(result).to.eql({
2165
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(result).to.eql({
2174
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(result).to.eql({
2183
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(result).to.eql({
2192
- message: ['Field 656 has invalid ending punctuation'],
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
- expect(result).to.eql({
2201
- message: ['Field 657 has invalid ending punctuation'],
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
- expect(result).to.eql({
2210
- message: ['Field 658 has invalid ending punctuation'],
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
- expect(result).to.eql({
2219
- message: ['Field 662 has invalid ending punctuation'],
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
- expect(recordInvalid655FinYes.equalsTo(recordValid655FinNo)).to.eql(true);
2229
- expect(result).to.eql({
2230
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(recordInvalid655FinYes2.equalsTo(recordValid655FinNo2)).to.eql(true);
2240
- expect(result).to.eql({
2241
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(recordInvalid655EngNo.equalsTo(recordValid655EngYes)).to.eql(true);
2251
- expect(result).to.eql({
2252
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(recordInvalid655EngNoNoControl.equalsTo(recordValid655EngYesNoControl)).to.eql(true);
2262
- expect(result).to.eql({
2263
- message: ['Field 655 has invalid ending punctuation'],
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
- expect(recordInvalid656FinYes.equalsTo(recordValid656FinNo)).to.eql(true);
2273
- expect(result).to.eql({
2274
- message: ['Field 656 has invalid ending punctuation'],
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
- expect(recordInvalid657EngNo.equalsTo(recordValid657EngYes)).to.eql(true);
2284
- expect(result).to.eql({
2285
- message: ['Field 657 has invalid ending punctuation'],
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
- expect(recordInvalid658EngNo.equalsTo(recordValid658EngYes)).to.eql(true);
2295
- expect(result).to.eql({
2296
- message: ['Field 658 has invalid ending punctuation'],
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 pun $a', async () => {
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
- expect(recordInvalid662EngNo.equalsTo(recordValid662EngYes)).to.eql(true);
2306
- expect(result).to.eql({
2307
- message: ['Field 662 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
2391
- message: ['Field 760 has invalid ending punctuation'],
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
- expect(result).to.eql({
2400
- message: ['Field 760 has invalid ending punctuation'],
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
- expect(recordInvalid.equalsTo(recordValid)).to.eql(true);
2410
- expect(result).to.eql({
2411
- message: ['Field 760 has invalid ending punctuation'],
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
- expect(recordInvalidOnlyA.equalsTo(recordValidOnlyA)).to.eql(true);
2421
- expect(result).to.eql({
2422
- message: ['Field 760 has invalid ending punctuation'],
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
- expect(result.valid).to.eql(true);
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
- expect(result.valid).to.eql(true);
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
- expect(result).to.eql({
2517
- message: ['Field 880 has invalid ending punctuation'],
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
- expect(result).to.eql({
2526
- message: ['Field 880 has invalid ending punctuation'],
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
- expect(recordInvalidSimple.equalsTo(recordValidSimple)).to.eql(true);
2536
- expect(result).to.eql({
2537
- message: ['Field 880 has invalid ending punctuation'],
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
- expect(recordInvalidComplex.equalsTo(recordValidComplex)).to.eql(true);
2547
- expect(result).to.eql({
2548
- message: ['Field 880 has invalid ending punctuation'],
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
  });