@natlibfi/marc-record-validators-melinda 10.11.0 → 10.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,7 +26,11 @@ describe('empty-fields', () => {
26
26
  const record = new _marcRecord.MarcRecord({
27
27
  fields: [{
28
28
  tag: '001',
29
- value: '1234567',
29
+ value: '1234567'
30
+ }, {
31
+ tag: '500',
32
+ ind1: ' ',
33
+ ind2: ' ',
30
34
  subfields: [{
31
35
  code: 'a',
32
36
  value: 'foo'
@@ -1 +1 @@
1
- {"version":3,"file":"empty-fields.spec.js","names":["_chai","require","_marcRecord","_emptyFields","_interopRequireDefault","obj","__esModule","default","before","MarcRecord","setValidationOptions","subfields","subfieldValues","after","describe","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","record","fields","tag","value","code","result","have","property","eql","valid","messages","fix","ind1","ind2"],"sources":["../src/empty-fields.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/empty-fields';\n\nbefore(() => {\n MarcRecord.setValidationOptions({subfields: false, subfieldValues: false});\n});\n\nafter(() => {\n MarcRecord.setValidationOptions({});\n});\n\ndescribe('empty-fields', () => {\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();\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '1234567',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n expect(result).to.to.have.property('valid', true);\n });\n\n it('Finds a missing subfield value', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '245',\n subfields: [\n {\n code: 'a'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 245 has missing subfield values: a']});\n });\n\n it('Finds an empty subfield array', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '500',\n subfields: []\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 500 has no subfields']});\n });\n });\n\n describe('#fix', () => {\n it('Removes a subfield with missing value', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '245',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n },\n {\n code: 'b'\n }\n ]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }\n ]);\n });\n\n it('Removes a field with no subfields', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '1234567'\n },\n {\n tag: '500',\n subfields: []\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '001',\n value: '1234567'\n }\n ]);\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"empty-fields.spec.js","names":["_chai","require","_marcRecord","_emptyFields","_interopRequireDefault","obj","__esModule","default","before","MarcRecord","setValidationOptions","subfields","subfieldValues","after","describe","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","record","fields","tag","value","ind1","ind2","code","result","have","property","eql","valid","messages","fix"],"sources":["../src/empty-fields.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/empty-fields';\n\nbefore(() => {\n MarcRecord.setValidationOptions({subfields: false, subfieldValues: false});\n});\n\nafter(() => {\n MarcRecord.setValidationOptions({});\n});\n\ndescribe('empty-fields', () => {\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();\n const record = new MarcRecord({\n fields: [\n {tag: '001', value: '1234567'},\n {tag: '500', ind1: ' ', ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]}\n ]\n });\n const result = await validator.validate(record);\n expect(result).to.to.have.property('valid', true);\n });\n\n it('Finds a missing subfield value', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '245',\n subfields: [\n {\n code: 'a'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 245 has missing subfield values: a']});\n });\n\n it('Finds an empty subfield array', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '500',\n subfields: []\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: ['Field 500 has no subfields']});\n });\n });\n\n describe('#fix', () => {\n it('Removes a subfield with missing value', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '245',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n },\n {\n code: 'b'\n }\n ]\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'foo'\n }\n ]\n }\n ]);\n });\n\n it('Removes a field with no subfields', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '1234567'\n },\n {\n tag: '500',\n subfields: []\n }\n ]\n });\n await validator.fix(record);\n\n expect(record.fields).to.eql([\n {\n tag: '001',\n value: '1234567'\n }\n ]);\n });\n });\n});\n"],"mappings":"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"}
@@ -113,7 +113,7 @@ describe('fixed-fields: language', () => {
113
113
  }]
114
114
  }]
115
115
  }, {
116
- tag: /^FUBAR$/u,
116
+ tag: /^FUB$/u,
117
117
  length: 5
118
118
  }]);
119
119
  const record = new _marcRecord.MarcRecord({
@@ -125,14 +125,14 @@ describe('fixed-fields: language', () => {
125
125
  tag: 'BAR',
126
126
  value: 'burfoo'
127
127
  }, {
128
- tag: 'FUBAR',
128
+ tag: 'FUB',
129
129
  value: 'foo'
130
130
  }]
131
131
  });
132
132
  const result = await validator.validate(record);
133
133
  expect(result).to.eql({
134
134
  valid: false,
135
- messages: ['Leader has invalid values at positions: 3 (Rule index 0)', 'Field FOO has invalid values at positions: 0 (Rule index 0)', 'Field BAR has invalid values at positions: 1 (Rule index 1)', 'Field BAR has invalid values at positions: 2,3 (Rule index 2)', 'Field FUBAR has invalid length']
135
+ messages: ['Leader has invalid values at positions: 3 (Rule index 0)', 'Field FOO has invalid values at positions: 0 (Rule index 0)', 'Field BAR has invalid values at positions: 1 (Rule index 1)', 'Field BAR has invalid values at positions: 2,3 (Rule index 2)', 'Field FUB has invalid length']
136
136
  });
137
137
  });
138
138
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fixed-fields.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fixedFields","obj","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","leader","length","rules","position","pattern","tag","dependencies","record","MarcRecord","fields","value","result","and","include","valid","eql","messages"],"sources":["../src/fixed-fields.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fixed-fields';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fixed-fields: language', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([]);\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when configuration is not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No configuration provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^b]/u}]}\n ]}\n ]);\n const record = new MarcRecord({\n leader: 'bacgfe',\n fields: [\n {\n tag: 'FOO',\n value: 'foobarfoobar'\n },\n {\n tag: 'BAR',\n value: 'bauuoo'\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.be.an('object').and.to.include({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^a]/u}]}\n ]},\n {tag: /^FUBAR$/u, length: 5}\n ]);\n const record = new MarcRecord({\n leader: 'bacxfe',\n fields: [\n {\n tag: 'FOO',\n value: 'barfoofoobar'\n },\n {\n tag: 'BAR',\n value: 'burfoo'\n },\n {\n tag: 'FUBAR',\n value: 'foo'\n }\n ]\n });\n\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'Leader has invalid values at positions: 3 (Rule index 0)',\n 'Field FOO has invalid values at positions: 0 (Rule index 0)',\n 'Field BAR has invalid values at positions: 1 (Rule index 1)',\n 'Field BAR has invalid values at positions: 2,3 (Rule index 2)',\n 'Field FUBAR has invalid length'\n ]});\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"fixed-fields.spec.js","names":["_chai","_interopRequireDefault","require","_chaiAsPromised","_marcRecord","_fixedFields","obj","__esModule","default","expect","chai","use","chaiAsPromised","describe","it","validator","validatorFactory","to","be","an","that","has","any","keys","description","a","validate","error","with","property","leader","length","rules","position","pattern","tag","dependencies","record","MarcRecord","fields","value","result","and","include","valid","eql","messages"],"sources":["../src/fixed-fields.spec.js"],"sourcesContent":["import chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/fixed-fields';\n\nconst {expect} = chai;\nchai.use(chaiAsPromised);\n\ndescribe('fixed-fields: language', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory([]);\n\n expect(validator)\n .to.be.an('object')\n .that.has.any.keys('description', 'validate');\n\n expect(validator.description).to.be.a('string');\n expect(validator.validate).to.be.a('function');\n });\n\n it('Throws an error when configuration is not provided', () => {\n try {\n validatorFactory();\n } catch (error) {\n expect(error).to.be.an('error').with.property('message', 'No configuration provided');\n }\n });\n\n describe('#validate', () => {\n it('Finds the record valid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^b]/u}]}\n ]}\n ]);\n const record = new MarcRecord({\n leader: 'bacgfe',\n fields: [\n {\n tag: 'FOO',\n value: 'foobarfoobar'\n },\n {\n tag: 'BAR',\n value: 'bauuoo'\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.be.an('object').and.to.include({valid: true});\n });\n\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory([\n {leader: true, length: 6, rules: [{position: [0, 6], pattern: /[abcdefg]/u}]},\n {tag: /^FOO$/u, length: 12, rules: [{position: 0, pattern: /f/u}]},\n {tag: /^BAR$/u, length: 6, rules: [\n {position: 0, pattern: /[fb]/u},\n {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},\n {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^a]/u}]}\n ]},\n {tag: /^FUB$/u, length: 5}\n ]);\n const record = new MarcRecord({\n leader: 'bacxfe',\n fields: [\n {\n tag: 'FOO',\n value: 'barfoofoobar'\n },\n {\n tag: 'BAR',\n value: 'burfoo'\n },\n {\n tag: 'FUB',\n value: 'foo'\n }\n ]\n });\n\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: false, messages: [\n 'Leader has invalid values at positions: 3 (Rule index 0)',\n 'Field FOO has invalid values at positions: 0 (Rule index 0)',\n 'Field BAR has invalid values at positions: 1 (Rule index 1)',\n 'Field BAR has invalid values at positions: 2,3 (Rule index 2)',\n 'Field FUB has invalid length'\n ]});\n });\n });\n});\n"],"mappings":"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"}
@@ -90,10 +90,10 @@ describe('sort-tags', () => {
90
90
  tag: '530',
91
91
  value: 'bar'
92
92
  }, {
93
- tag: '30',
93
+ tag: '300',
94
94
  value: 'bar'
95
95
  }, {
96
- tag: 'c',
96
+ tag: 'CCC',
97
97
  ind1: ' ',
98
98
  ind2: ' ',
99
99
  subfields: [{
@@ -109,7 +109,7 @@ describe('sort-tags', () => {
109
109
  value: 'asdassdaasdsadsasad'
110
110
  }]
111
111
  }, {
112
- tag: 'a',
112
+ tag: 'AAA',
113
113
  ind1: ' ',
114
114
  ind2: ' ',
115
115
  subfields: [{
@@ -147,7 +147,7 @@ describe('sort-tags', () => {
147
147
  tag: '001',
148
148
  value: '100'
149
149
  }, {
150
- tag: '30',
150
+ tag: '300',
151
151
  value: 'bar'
152
152
  }, {
153
153
  tag: '530',
@@ -185,7 +185,7 @@ describe('sort-tags', () => {
185
185
  value: 'Bar'
186
186
  }]
187
187
  }, {
188
- tag: 'a',
188
+ tag: 'AAA',
189
189
  ind1: ' ',
190
190
  ind2: ' ',
191
191
  subfields: [{
@@ -193,7 +193,7 @@ describe('sort-tags', () => {
193
193
  value: 'qweweqewqqweweqwq'
194
194
  }]
195
195
  }, {
196
- tag: 'c',
196
+ tag: 'CCC',
197
197
  ind1: ' ',
198
198
  ind2: ' ',
199
199
  subfields: [{
@@ -1 +1 @@
1
- {"version":3,"file":"sort-tags.spec.js","names":["_chai","require","_marcRecord","_sortTags","_interopRequireDefault","obj","__esModule","default","describe","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","record","MarcRecord","fields","tag","value","ind1","ind2","subfields","code","result","eql","valid","messages","fix"],"sources":["../src/sort-tags.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/sort-tags';\n\ndescribe('sort-tags', () => {\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();\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '008',\n value: 'bar'\n },\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo Bar'\n }\n ]\n },\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '008',\n value: 'bar'\n },\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n },\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo Bar'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n expect(result).to.eql({valid: false, messages: ['Fields are in incorrect order']});\n });\n });\n\n describe('#fix', () => {\n it('Sorts with exclusion', async () => {\n const validator = await validatorFactory([/^5..$/u, /^7..$/u]);\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '530',\n value: 'bar'\n },\n {\n tag: '30',\n value: 'bar'\n },\n {\n tag: 'c',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n },\n {\n tag: '520',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'asdassdaasdsadsasad'\n }\n ]\n },\n {\n tag: 'a',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'qweweqewqqweweqwq'\n }\n ]\n },\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Bar Foo'\n }\n ]\n },\n {\n tag: '711',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo'\n }\n ]\n },\n {\n tag: '710',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'w',\n value: 'Bar'\n }\n ]\n }\n ]\n });\n await validator.fix(record);\n expect(record.fields).to.eql([\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '30',\n value: 'bar'\n },\n {\n tag: '530',\n value: 'bar'\n },\n {\n tag: '520',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'asdassdaasdsadsasad'\n }\n ]\n },\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Bar Foo'\n }\n ]\n },\n {\n tag: '711',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo'\n }\n ]\n },\n {\n tag: '710',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'w',\n value: 'Bar'\n }\n ]\n },\n {\n tag: 'a',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'qweweqewqqweweqwq'\n }\n ]\n },\n {\n tag: 'c',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n }\n ]);\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"sort-tags.spec.js","names":["_chai","require","_marcRecord","_sortTags","_interopRequireDefault","obj","__esModule","default","describe","it","validator","validatorFactory","expect","to","be","an","that","has","any","keys","description","a","validate","record","MarcRecord","fields","tag","value","ind1","ind2","subfields","code","result","eql","valid","messages","fix"],"sources":["../src/sort-tags.spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '../src/sort-tags';\n\ndescribe('sort-tags', () => {\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();\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '008',\n value: 'bar'\n },\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo Bar'\n }\n ]\n },\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n\n expect(result).to.eql({valid: true, messages: []});\n });\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [\n {\n tag: '008',\n value: 'bar'\n },\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '245',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n },\n {\n tag: '100',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo Bar'\n }\n ]\n }\n ]\n });\n const result = await validator.validate(record);\n expect(result).to.eql({valid: false, messages: ['Fields are in incorrect order']});\n });\n });\n\n describe('#fix', () => {\n it('Sorts with exclusion', async () => {\n const validator = await validatorFactory([/^5..$/u, /^7..$/u]);\n const record = new MarcRecord({\n fields: [\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '530',\n value: 'bar'\n },\n {\n tag: '300',\n value: 'bar'\n },\n {\n tag: 'CCC',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n },\n {\n tag: '520',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'asdassdaasdsadsasad'\n }\n ]\n },\n {\n tag: 'AAA',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'qweweqewqqweweqwq'\n }\n ]\n },\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Bar Foo'\n }\n ]\n },\n {\n tag: '711',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo'\n }\n ]\n },\n {\n tag: '710',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'w',\n value: 'Bar'\n }\n ]\n }\n ]\n });\n await validator.fix(record);\n expect(record.fields).to.eql([\n {\n tag: '001',\n value: '100'\n },\n {\n tag: '300',\n value: 'bar'\n },\n {\n tag: '530',\n value: 'bar'\n },\n {\n tag: '520',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'asdassdaasdsadsasad'\n }\n ]\n },\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Bar Foo'\n }\n ]\n },\n {\n tag: '711',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Foo'\n }\n ]\n },\n {\n tag: '710',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'w',\n value: 'Bar'\n }\n ]\n },\n {\n tag: 'AAA',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'qweweqewqqweweqwq'\n }\n ]\n },\n {\n tag: 'CCC',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {\n code: 'a',\n value: 'Fubar'\n }\n ]\n }\n ]);\n });\n });\n});\n"],"mappings":"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"}
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": "MIT",
17
- "version": "10.11.0",
17
+ "version": "10.11.1",
18
18
  "main": "./dist/index.js",
19
19
  "publishConfig": {
20
20
  "access": "public"
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@babel/register": "^7.22.5",
39
39
  "@natlibfi/issn-verify": "^1.0.3",
40
- "@natlibfi/marc-record": "^7.2.4",
40
+ "@natlibfi/marc-record": "^7.3.0",
41
41
  "@natlibfi/marc-record-validate": "^8.0.1",
42
42
  "cld3-asm": "^3.1.1",
43
43
  "debug": "^4.3.4",
@@ -27,16 +27,14 @@ describe('empty-fields', () => {
27
27
  const validator = await validatorFactory();
28
28
  const record = new MarcRecord({
29
29
  fields: [
30
- {
31
- tag: '001',
32
- value: '1234567',
30
+ {tag: '001', value: '1234567'},
31
+ {tag: '500', ind1: ' ', ind2: ' ',
33
32
  subfields: [
34
33
  {
35
34
  code: 'a',
36
35
  value: 'foo'
37
36
  }
38
- ]
39
- }
37
+ ]}
40
38
  ]
41
39
  });
42
40
  const result = await validator.validate(record);
@@ -64,7 +64,7 @@ describe('fixed-fields: language', () => {
64
64
  {position: 1, pattern: /a/u, dependencies: [{position: 0, pattern: /b/u}]},
65
65
  {position: [2, 3], pattern: /u/u, dependencies: [{position: 0, pattern: /[^a]/u}]}
66
66
  ]},
67
- {tag: /^FUBAR$/u, length: 5}
67
+ {tag: /^FUB$/u, length: 5}
68
68
  ]);
69
69
  const record = new MarcRecord({
70
70
  leader: 'bacxfe',
@@ -78,7 +78,7 @@ describe('fixed-fields: language', () => {
78
78
  value: 'burfoo'
79
79
  },
80
80
  {
81
- tag: 'FUBAR',
81
+ tag: 'FUB',
82
82
  value: 'foo'
83
83
  }
84
84
  ]
@@ -91,7 +91,7 @@ describe('fixed-fields: language', () => {
91
91
  'Field FOO has invalid values at positions: 0 (Rule index 0)',
92
92
  'Field BAR has invalid values at positions: 1 (Rule index 1)',
93
93
  'Field BAR has invalid values at positions: 2,3 (Rule index 2)',
94
- 'Field FUBAR has invalid length'
94
+ 'Field FUB has invalid length'
95
95
  ]});
96
96
  });
97
97
  });
@@ -110,11 +110,11 @@ describe('sort-tags', () => {
110
110
  value: 'bar'
111
111
  },
112
112
  {
113
- tag: '30',
113
+ tag: '300',
114
114
  value: 'bar'
115
115
  },
116
116
  {
117
- tag: 'c',
117
+ tag: 'CCC',
118
118
  ind1: ' ',
119
119
  ind2: ' ',
120
120
  subfields: [
@@ -136,7 +136,7 @@ describe('sort-tags', () => {
136
136
  ]
137
137
  },
138
138
  {
139
- tag: 'a',
139
+ tag: 'AAA',
140
140
  ind1: ' ',
141
141
  ind2: ' ',
142
142
  subfields: [
@@ -188,7 +188,7 @@ describe('sort-tags', () => {
188
188
  value: '100'
189
189
  },
190
190
  {
191
- tag: '30',
191
+ tag: '300',
192
192
  value: 'bar'
193
193
  },
194
194
  {
@@ -240,7 +240,7 @@ describe('sort-tags', () => {
240
240
  ]
241
241
  },
242
242
  {
243
- tag: 'a',
243
+ tag: 'AAA',
244
244
  ind1: ' ',
245
245
  ind2: ' ',
246
246
  subfields: [
@@ -251,7 +251,7 @@ describe('sort-tags', () => {
251
251
  ]
252
252
  },
253
253
  {
254
- tag: 'c',
254
+ tag: 'CCC',
255
255
  ind1: ' ',
256
256
  ind2: ' ',
257
257
  subfields: [