@natlibfi/marc-record-validators-melinda 9.0.4 → 9.0.6

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.
@@ -14,7 +14,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
14
14
  *
15
15
  * MARC record validators used in Melinda
16
16
  *
17
- * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)
17
+ * Copyright (c) 2014-2022 University Of Helsinki (The National Library Of Finland)
18
18
  *
19
19
  * This file is part of marc-record-validators-melinda
20
20
  *
@@ -64,6 +64,14 @@ describe('isbn-issn', () => {
64
64
  code: 'a',
65
65
  value: '90-6831-372-X'
66
66
  }]
67
+ }, {
68
+ tag: '020',
69
+ ind1: ' ',
70
+ ind2: ' ',
71
+ subfields: [{
72
+ code: 'z',
73
+ value: '978-600-377-017-1'
74
+ }]
67
75
  }, {
68
76
  tag: '022',
69
77
  ind1: ' ',
@@ -90,6 +98,15 @@ describe('isbn-issn', () => {
90
98
  code: 'a',
91
99
  value: 'foo'
92
100
  }]
101
+ }, {
102
+ tag: '020',
103
+ ind1: ' ',
104
+ ind2: ' ',
105
+ subfields: [{
106
+ code: 'a',
107
+ value: '90-68-31-372-X'
108
+ }] // contains an extra hyphen
109
+
93
110
  }, {
94
111
  tag: '022',
95
112
  ind1: ' ',
@@ -106,7 +123,7 @@ describe('isbn-issn', () => {
106
123
  messages: ['ISBN (foo) is not valid', 'ISSN (bar) is not valid']
107
124
  });
108
125
  });
109
- it('Finds the invalid 020 field', async () => {
126
+ it('020 field without $a and $z is ok in this context (= no invalid ISBNs)', async () => {
110
127
  const validator = await (0, _isbnIssn.default)();
111
128
  const record = new _marcRecord.MarcRecord({
112
129
  fields: [{
@@ -121,8 +138,7 @@ describe('isbn-issn', () => {
121
138
  });
122
139
  const result = await validator.validate(record);
123
140
  (0, _chai.expect)(result).to.eql({
124
- valid: false,
125
- messages: ['ISBN (undefined) is not valid']
141
+ valid: true
126
142
  });
127
143
  });
128
144
  it('Finds the invalid 022 field', async () => {
@@ -144,18 +160,10 @@ describe('isbn-issn', () => {
144
160
  messages: ['ISSN (undefined) is not valid']
145
161
  });
146
162
  });
147
- it('Finds the record invalid (Spaces in ISBN)', async () => {
163
+ it('Finds the record invalid (reason: multiword)', async () => {
148
164
  const validator = await (0, _isbnIssn.default)();
149
165
  const record = new _marcRecord.MarcRecord({
150
166
  fields: [{
151
- tag: '020',
152
- ind1: ' ',
153
- ind2: ' ',
154
- subfields: [{
155
- code: 'a',
156
- value: ' 9789519155470'
157
- }]
158
- }, {
159
167
  tag: '020',
160
168
  ind1: ' ',
161
169
  ind2: ' ',
@@ -168,7 +176,7 @@ describe('isbn-issn', () => {
168
176
  const result = await validator.validate(record);
169
177
  (0, _chai.expect)(result).to.eql({
170
178
  valid: false,
171
- messages: ['ISBN ( 9789519155470) is not valid', 'ISBN (978-600-377-017-1 (nid.)) is not valid']
179
+ messages: ['ISBN (978-600-377-017-1 (nid.)) is not valid']
172
180
  });
173
181
  });
174
182
  it('Finds the record invalid (ISSN in \'l\'-subfield)', async () => {
@@ -211,6 +219,15 @@ describe('isbn-issn', () => {
211
219
  code: 'a',
212
220
  value: '9789519155470'
213
221
  }]
222
+ }, {
223
+ tag: '020',
224
+ ind1: ' ',
225
+ ind2: ' ',
226
+ subfields: [{
227
+ code: 'a',
228
+ value: '9068-31-372-X'
229
+ }] // legal digits, but bad hyphenation
230
+
214
231
  }, {
215
232
  tag: '020',
216
233
  ind1: ' ',
@@ -224,7 +241,7 @@ describe('isbn-issn', () => {
224
241
  const result = await validator.validate(record);
225
242
  (0, _chai.expect)(result).to.eql({
226
243
  valid: false,
227
- messages: ['ISBN (9789519155470) is not valid', 'ISBN (386006004X) is not valid']
244
+ messages: ['ISBN (9789519155470) is not valid', 'ISBN (9068-31-372-X) is not valid', 'ISBN (386006004X) is not valid']
228
245
  });
229
246
  });
230
247
  it.skip('Finds the record invalid (Missing ISBN)');
@@ -252,6 +269,23 @@ describe('isbn-issn', () => {
252
269
  code: 'a',
253
270
  value: 'crappy val'
254
271
  }]
272
+ }, {
273
+ tag: '020',
274
+ ind1: ' ',
275
+ ind2: ' ',
276
+ subfields: [{
277
+ code: 'a',
278
+ value: '97895234216609'
279
+ }]
280
+ }, // Just a sanity check due to earlier issues:
281
+ {
282
+ tag: '020',
283
+ ind1: ' ',
284
+ ind2: ' ',
285
+ subfields: [{
286
+ code: 'z',
287
+ value: '97895234216609'
288
+ }]
255
289
  }]
256
290
  });
257
291
  await validator.fix(record);
@@ -271,6 +305,22 @@ describe('isbn-issn', () => {
271
305
  code: 'z',
272
306
  value: 'crappy val'
273
307
  }]
308
+ }, {
309
+ tag: '020',
310
+ ind1: ' ',
311
+ ind2: ' ',
312
+ subfields: [{
313
+ code: 'z',
314
+ value: '97895234216609'
315
+ }]
316
+ }, {
317
+ tag: '020',
318
+ ind1: ' ',
319
+ ind2: ' ',
320
+ subfields: [{
321
+ code: 'z',
322
+ value: '97895234216609'
323
+ }]
274
324
  }]);
275
325
  });
276
326
  it('Moves invalid ISSN to y-subfield', async () => {
@@ -342,18 +392,19 @@ describe('isbn-issn', () => {
342
392
  ind2: ' ',
343
393
  subfields: [{
344
394
  code: 'a',
345
- value: '9786003770171 (nid.)'
395
+ value: '9786003770171 (nidottu)'
346
396
  }]
347
397
  }]
348
398
  });
349
399
  await validator.fix(record);
350
- (0, _chai.expect)(record.fields).to.eql([{
400
+ (0, _chai.expect)(record.fields).to.eql([// NB! Initial space does not need to be removed. It's crap, but not this fixer's crap.
401
+ {
351
402
  tag: '020',
352
403
  ind1: ' ',
353
404
  ind2: ' ',
354
405
  subfields: [{
355
406
  code: 'a',
356
- value: '9786003770171'
407
+ value: ' 9786003770171'
357
408
  }]
358
409
  }, {
359
410
  tag: '020',
@@ -362,6 +413,9 @@ describe('isbn-issn', () => {
362
413
  subfields: [{
363
414
  code: 'a',
364
415
  value: '9786003770171'
416
+ }, {
417
+ code: 'q',
418
+ value: '(nidottu)'
365
419
  }]
366
420
  }]);
367
421
  });
@@ -376,7 +430,13 @@ describe('isbn-issn', () => {
376
430
  ind2: ' ',
377
431
  subfields: [{
378
432
  code: 'a',
379
- value: ' 9786003770171'
433
+ value: '9786003770171 (nid.)'
434
+ }, {
435
+ code: 'z',
436
+ value: '9786003770171 (nid.)'
437
+ }, {
438
+ code: 'z',
439
+ value: 'foo bar'
380
440
  }]
381
441
  }]
382
442
  });
@@ -388,10 +448,68 @@ describe('isbn-issn', () => {
388
448
  subfields: [{
389
449
  code: 'a',
390
450
  value: '978-600-377-017-1'
451
+ }, {
452
+ code: 'z',
453
+ value: '978-600-377-017-1'
454
+ }, {
455
+ code: 'z',
456
+ value: 'foo bar'
457
+ }, // NB! Technically $q should come before $z subfields, but this is good enough.
458
+ {
459
+ code: 'q',
460
+ value: '(nid.)'
461
+ }]
462
+ }]);
463
+ });
464
+ it('No relevant data', async () => {
465
+ const validator = await (0, _isbnIssn.default)({
466
+ hyphenateISBN: true
467
+ });
468
+ const record = new _marcRecord.MarcRecord({
469
+ fields: [{
470
+ tag: '005',
471
+ value: 'whatever'
472
+ }, {
473
+ tag: '020',
474
+ ind1: ' ',
475
+ ind2: ' ',
476
+ subfields: [{
477
+ code: 'q',
478
+ value: 'sidottu'
479
+ }]
480
+ }, {
481
+ tag: '024',
482
+ ind1: ' ',
483
+ ind2: ' ',
484
+ subfields: [{
485
+ code: 'a',
486
+ value: ' 9786003770171'
487
+ }]
488
+ }]
489
+ });
490
+ await validator.fix(record);
491
+ (0, _chai.expect)(record.fields).to.eql([{
492
+ tag: '005',
493
+ value: 'whatever'
494
+ }, {
495
+ tag: '020',
496
+ ind1: ' ',
497
+ ind2: ' ',
498
+ subfields: [{
499
+ code: 'q',
500
+ value: 'sidottu'
501
+ }]
502
+ }, {
503
+ tag: '024',
504
+ ind1: ' ',
505
+ ind2: ' ',
506
+ subfields: [{
507
+ code: 'a',
508
+ value: ' 9786003770171'
391
509
  }]
392
510
  }]);
393
511
  });
394
- it('Adds hyphens to ISBN', async () => {
512
+ it('Add hyphens to ISBN', async () => {
395
513
  const validator = await (0, _isbnIssn.default)({
396
514
  hyphenateISBN: true
397
515
  });
@@ -412,6 +530,15 @@ describe('isbn-issn', () => {
412
530
  code: 'a',
413
531
  value: '917153086X'
414
532
  }]
533
+ }, {
534
+ tag: '020',
535
+ ind1: ' ',
536
+ ind2: ' ',
537
+ subfields: [{
538
+ code: 'a',
539
+ value: '9068-31-372-X'
540
+ }] // legal digits, but bad hyphenation
541
+
415
542
  }, {
416
543
  tag: '020',
417
544
  ind1: ' ',
@@ -420,6 +547,22 @@ describe('isbn-issn', () => {
420
547
  code: 'a',
421
548
  value: '386006004X (nid.)'
422
549
  }]
550
+ }, {
551
+ tag: '020',
552
+ ind1: ' ',
553
+ ind2: ' ',
554
+ subfields: [{
555
+ code: 'z',
556
+ value: '9789916605325'
557
+ }]
558
+ }, {
559
+ tag: '020',
560
+ ind1: ' ',
561
+ ind2: ' ',
562
+ subfields: [{
563
+ code: 'z',
564
+ value: '9789916605325 (sid.)'
565
+ }]
423
566
  }]
424
567
  });
425
568
  await validator.fix(record);
@@ -440,12 +583,40 @@ describe('isbn-issn', () => {
440
583
  value: '91-7153-086-X'
441
584
  }]
442
585
  }, {
586
+ tag: '020',
587
+ ind1: ' ',
588
+ ind2: ' ',
589
+ subfields: [{
590
+ code: 'a',
591
+ value: '90-6831-372-X'
592
+ }]
593
+ }, // corrected hyphens
594
+ {
443
595
  tag: '020',
444
596
  ind1: ' ',
445
597
  ind2: ' ',
446
598
  subfields: [{
447
599
  code: 'a',
448
600
  value: '3-86006-004-X'
601
+ }, {
602
+ code: 'q',
603
+ value: '(nid.)'
604
+ }]
605
+ }, {
606
+ tag: '020',
607
+ ind1: ' ',
608
+ ind2: ' ',
609
+ subfields: [{
610
+ code: 'z',
611
+ value: '978-9916-605-32-5'
612
+ }]
613
+ }, {
614
+ tag: '020',
615
+ ind1: ' ',
616
+ ind2: ' ',
617
+ subfields: [{
618
+ code: 'z',
619
+ value: '978-9916-605-32-5'
449
620
  }]
450
621
  }]);
451
622
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/isbn-issn.spec.js"],"names":["describe","it","validator","to","be","an","that","has","any","keys","description","a","validate","hyphenateISBN","record","MarcRecord","fields","tag","ind1","ind2","subfields","code","value","result","eql","valid","messages","skip","handleInvalid","fix"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2020 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/isbn-issn';\n\ndescribe('isbn-issn', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '978-600-377-017-1'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '90-6831-372-X'}]\n },\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '0355-0893'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'bar'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: [\n 'ISBN (foo) is not valid',\n 'ISSN (bar) is not valid'\n ]\n });\n });\n\n it('Finds the invalid 020 field', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'q', value: 'nidottu'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: ['ISBN (undefined) is not valid']\n });\n });\n\n it('Finds the invalid 022 field', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'z', value: '0000-0000'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: ['ISSN (undefined) is not valid']\n });\n });\n\n it('Finds the record invalid (Spaces in ISBN)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: ' 9789519155470'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '978-600-377-017-1 (nid.)'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: [\n 'ISBN ( 9789519155470) is not valid',\n 'ISBN (978-600-377-017-1 (nid.)) is not valid'\n ]\n });\n });\n\n it('Finds the record invalid (ISSN in \\'l\\'-subfield)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'l', value: 'bar'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: [\n 'ISBN (foo) is not valid',\n 'ISSN (bar) is not valid'\n ]\n });\n });\n\n it('Finds the record invalid (valid ISBN without hyphens)', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9789519155470'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '386006004X'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'ISBN (9789519155470) is not valid',\n 'ISBN (386006004X) is not valid'\n ]});\n });\n\n it.skip('Finds the record invalid (Missing ISBN)');\n it.skip('Finds the record invalid (Missing ISSN)');\n });\n\n describe('#fix', () => {\n it('Moves invalid ISBN to z-subfield', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'crappy val'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: 'foo'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: 'crappy val'}]}\n ]);\n });\n\n it('Moves invalid ISSN to y-subfield', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '022', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '022', ind1: ' ', ind2: ' ', subfields: [{code: 'y', value: 'foo'}]\n }\n ]);\n });\n\n it('Moves invalid ISSN to y-subfield (Origin l-subfield)', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '022', ind1: ' ', ind2: ' ',\n subfields: [{code: 'l', value: 'foo'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '022', ind1: ' ', ind2: ' ', subfields: [{code: 'y', value: 'foo'}]\n }\n ]);\n });\n\n it('Trims spaces from value (No hyphenate)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: ' 9786003770171'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9786003770171 (nid.)'}]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '9786003770171'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '9786003770171'}]}\n ]);\n });\n\n it('Trims spaces and hyphenates value', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: ' 9786003770171'}]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '978-600-377-017-1'}]\n }\n ]);\n });\n\n it('Adds hyphens to ISBN', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '9789916605325'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '917153086X'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '386006004X (nid.)'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '978-9916-605-32-5'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '91-7153-086-X'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '3-86006-004-X'}]}\n ]);\n });\n });\n});\n"],"file":"isbn-issn.spec.js"}
1
+ {"version":3,"sources":["../src/isbn-issn.spec.js"],"names":["describe","it","validator","to","be","an","that","has","any","keys","description","a","validate","hyphenateISBN","record","MarcRecord","fields","tag","ind1","ind2","subfields","code","value","result","eql","valid","messages","skip","handleInvalid","fix"],"mappings":"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","sourcesContent":["/**\n *\n * @licstart The following is the entire license notice for the JavaScript code in this file.\n *\n * MARC record validators used in Melinda\n *\n * Copyright (c) 2014-2022 University Of Helsinki (The National Library Of Finland)\n *\n * This file is part of marc-record-validators-melinda\n *\n * marc-record-validators-melinda program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Lesser General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * marc-record-validators-melinda is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n * @licend The above is the entire license notice\n * for the JavaScript code in this file.\n *\n */\n\n\nimport {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/isbn-issn';\n\ndescribe('isbn-issn', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '978-600-377-017-1'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '90-6831-372-X'}]\n },\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '978-600-377-017-1'}]},\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '0355-0893'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '90-68-31-372-X'}] // contains an extra hyphen\n },\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'bar'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: [\n 'ISBN (foo) is not valid',\n 'ISSN (bar) is not valid'\n ]\n });\n });\n\n it('020 field without $a and $z is ok in this context (= no invalid ISBNs)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'q', value: 'nidottu'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: true\n });\n });\n\n it('Finds the invalid 022 field', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'z', value: '0000-0000'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: ['ISSN (undefined) is not valid']\n });\n });\n\n it('Finds the record invalid (reason: multiword)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '978-600-377-017-1 (nid.)'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['ISBN (978-600-377-017-1 (nid.)) is not valid']});\n });\n\n it('Finds the record invalid (ISSN in \\'l\\'-subfield)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '022',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'l', value: 'bar'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({\n valid: false, messages: [\n 'ISBN (foo) is not valid',\n 'ISSN (bar) is not valid'\n ]\n });\n });\n\n it('Finds the record invalid (valid ISBN without hyphens)', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9789519155470'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9068-31-372-X'}] // legal digits, but bad hyphenation\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '386006004X'}]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'ISBN (9789519155470) is not valid',\n 'ISBN (9068-31-372-X) is not valid',\n 'ISBN (386006004X) is not valid'\n ]});\n });\n\n it.skip('Finds the record invalid (Missing ISBN)');\n it.skip('Finds the record invalid (Missing ISSN)');\n });\n\n describe('#fix', () => {\n it('Moves invalid ISBN to z-subfield', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'crappy val'}]\n },\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '97895234216609'}]},\n // Just a sanity check due to earlier issues:\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '97895234216609'}]}\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: 'foo'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: 'crappy val'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '97895234216609'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '97895234216609'}]}\n ]);\n });\n\n it('Moves invalid ISSN to y-subfield', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '022', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: 'foo'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '022', ind1: ' ', ind2: ' ', subfields: [{code: 'y', value: 'foo'}]\n }\n ]);\n });\n\n it('Moves invalid ISSN to y-subfield (Origin l-subfield)', async () => {\n const validator = await validatorFactory({handleInvalid: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '022', ind1: ' ', ind2: ' ',\n subfields: [{code: 'l', value: 'foo'}]\n }\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '022', ind1: ' ', ind2: ' ', subfields: [{code: 'y', value: 'foo'}]\n }\n ]);\n });\n\n it('Trims spaces from value (No hyphenate)', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: ' 9786003770171'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9786003770171 (nidottu)'}]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n // NB! Initial space does not need to be removed. It's crap, but not this fixer's crap.\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: ' 9786003770171'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '9786003770171'}, {code: 'q', value: '(nidottu)'}]}\n ]);\n });\n\n it('Trims spaces and hyphenates value', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: '9786003770171 (nid.)'},\n {code: 'z', value: '9786003770171 (nid.)'},\n {code: 'z', value: 'foo bar'}\n ]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: '978-600-377-017-1'},\n {code: 'z', value: '978-600-377-017-1'},\n {code: 'z', value: 'foo bar'},\n // NB! Technically $q should come before $z subfields, but this is good enough.\n {code: 'q', value: '(nid.)'}\n ]\n }\n ]);\n });\n\n it('No relevant data', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '005',\n value: 'whatever'\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'q', value: 'sidottu'}]\n },\n {\n tag: '024',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: ' 9786003770171'}]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '005', value: 'whatever'},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'q', value: 'sidottu'}]},\n {tag: '024', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: ' 9786003770171'}]}\n ]);\n });\n\n it('Add hyphens to ISBN', async () => {\n const validator = await validatorFactory({hyphenateISBN: true});\n const record = new MarcRecord({\n fields: [\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '9789916605325'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '917153086X'}]\n },\n {\n tag: '020',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'a', value: '9068-31-372-X'}] // legal digits, but bad hyphenation\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'a', value: '386006004X (nid.)'}]\n },\n {\n tag: '020', ind1: ' ', ind2: ' ',\n subfields: [{code: 'z', value: '9789916605325'}]\n },\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '9789916605325 (sid.)'}]}\n ]\n });\n\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '978-9916-605-32-5'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '91-7153-086-X'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '90-6831-372-X'}]}, // corrected hyphens\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'a', value: '3-86006-004-X'}, {code: 'q', value: '(nid.)'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '978-9916-605-32-5'}]},\n {tag: '020', ind1: ' ', ind2: ' ', subfields: [{code: 'z', value: '978-9916-605-32-5'}]}\n ]);\n });\n });\n});\n"],"file":"isbn-issn.spec.js"}
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "url": "git@github.com:natlibfi/marc-record-validators-melinda.git"
15
15
  },
16
16
  "license": "LGPL-3.0+",
17
- "version": "9.0.4",
17
+ "version": "9.0.6",
18
18
  "main": "./dist/index.js",
19
19
  "publishConfig": {
20
20
  "access": "public"