@natlibfi/marc-record-validators-melinda 12.0.0-alpha.9 → 12.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-rights.test.js +1 -1
- package/dist/access-rights.test.js.map +1 -1
- package/dist/addMissingField337.test.js +1 -1
- package/dist/addMissingField337.test.js.map +1 -1
- package/dist/addMissingField338.test.js +1 -1
- package/dist/addMissingField338.test.js.map +1 -1
- package/dist/cyrillux-usemarcon-replacement.test.js +4 -7
- package/dist/cyrillux-usemarcon-replacement.test.js.map +2 -2
- package/dist/cyrillux.test.js +1 -1
- package/dist/cyrillux.test.js.map +1 -1
- package/dist/double-commas.test.js +1 -1
- package/dist/double-commas.test.js.map +1 -1
- package/dist/empty-fields.test.js +1 -1
- package/dist/empty-fields.test.js.map +1 -1
- package/dist/ending-punctuation.test.js +39 -19
- package/dist/ending-punctuation.test.js.map +2 -2
- package/dist/field-008-18-34-character-groups.test.js +1 -1
- package/dist/field-008-18-34-character-groups.test.js.map +1 -1
- package/dist/field-exclusion.test.js +11 -8
- package/dist/field-exclusion.test.js.map +2 -2
- package/dist/field-structure.test.js +1 -1
- package/dist/field-structure.test.js.map +1 -1
- package/dist/fields-present.test.js +1 -1
- package/dist/fields-present.test.js.map +1 -1
- package/dist/fixRelatorTerms.test.js +1 -1
- package/dist/fixRelatorTerms.test.js.map +1 -1
- package/dist/fixed-fields.test.js +29 -18
- package/dist/fixed-fields.test.js.map +2 -2
- package/dist/identical-fields.test.js +1 -1
- package/dist/identical-fields.test.js.map +1 -1
- package/dist/isbn-issn.js +1 -1
- package/dist/isbn-issn.js.map +2 -2
- package/dist/isbn-issn.test.js +9 -6
- package/dist/isbn-issn.test.js.map +2 -2
- package/dist/item-language.test.js +1 -1
- package/dist/item-language.test.js.map +2 -2
- package/dist/normalizeFieldForComparison.js +24 -0
- package/dist/normalizeFieldForComparison.js.map +2 -2
- package/dist/punctuation2.test.js +1 -1
- package/dist/punctuation2.test.js.map +1 -1
- package/dist/removeDuplicateDataFields.test.js +1 -1
- package/dist/removeDuplicateDataFields.test.js.map +1 -1
- package/dist/resolvable-ext-references-melinda.test.js +1 -1
- package/dist/resolvable-ext-references-melinda.test.js.map +2 -2
- package/dist/sort-tags.test.js +1 -1
- package/dist/sort-tags.test.js.map +1 -1
- package/dist/subfield-exclusion.test.js +1 -1
- package/dist/subfield-exclusion.test.js.map +1 -1
- package/dist/unicode-decomposition.test.js +1 -1
- package/dist/unicode-decomposition.test.js.map +1 -1
- package/dist/update-field-540.test.js +1 -1
- package/dist/update-field-540.test.js.map +1 -1
- package/dist/urn.test.js +1 -1
- package/dist/urn.test.js.map +1 -1
- package/package.json +15 -15
- package/src/access-rights.test.js +1 -1
- package/src/addMissingField337.test.js +1 -1
- package/src/addMissingField338.test.js +1 -1
- package/src/cyrillux-usemarcon-replacement.test.js +4 -9
- package/src/cyrillux.test.js +1 -1
- package/src/double-commas.test.js +1 -1
- package/src/empty-fields.test.js +1 -1
- package/src/ending-punctuation.test.js +28 -20
- package/src/field-008-18-34-character-groups.test.js +1 -1
- package/src/field-exclusion.test.js +10 -8
- package/src/field-structure.test.js +1 -1
- package/src/fields-present.test.js +1 -1
- package/src/fixRelatorTerms.test.js +1 -1
- package/src/fixed-fields.test.js +24 -18
- package/src/identical-fields.test.js +1 -1
- package/src/isbn-issn.js +1 -1
- package/src/isbn-issn.test.js +8 -6
- package/src/item-language.test.js +2 -2
- package/src/normalizeFieldForComparison.js +26 -0
- package/src/punctuation2.test.js +1 -1
- package/src/removeDuplicateDataFields.test.js +1 -1
- package/src/resolvable-ext-references-melinda.test.js +5 -5
- package/src/sort-tags.test.js +1 -1
- package/src/subfield-exclusion.test.js +1 -1
- package/src/unicode-decomposition.test.js +1 -1
- package/src/update-field-540.test.js +1 -1
- package/src/urn.test.js +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { describe, it } from "node:test";
|
|
3
3
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
4
|
-
import validatorFactory from "
|
|
4
|
+
import validatorFactory from "./access-rights.js";
|
|
5
5
|
describe("access-rights", async () => {
|
|
6
6
|
const f337 = {
|
|
7
7
|
tag: "337",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/access-rights.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {describe, it} from 'node:test';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {describe, it} from 'node:test';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './access-rights.js';\n\n\ndescribe('access-rights', async () => {\n // Fields\n const f337 = {\n tag: '337',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'b', value: 'c'},\n {code: '2', value: 'rdamedia'}\n ]\n };\n\n const f337nonElectronic = {\n tag: '337',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'k\u00E4ytett\u00E4viss\u00E4 ilman laitetta'},\n {code: 'b', value: 'n'},\n {code: '2', value: 'rdamedia'}\n ]\n };\n\n const ldf5061old = {\n tag: '506',\n ind1: '1',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on k\u00E4ytett\u00E4viss\u00E4 vapaakappalekirjastoissa.'},\n {code: 'f', value: 'Online access with authorization'},\n {code: '2', value: 'star'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const ldf5061new = {\n tag: '506',\n ind1: '1',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on k\u00E4ytett\u00E4viss\u00E4 vapaakappalety\u00F6asemilla.'},\n {code: 'f', value: 'Online access with authorization'},\n {code: '2', value: 'star'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n\n const ldf540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on k\u00E4ytett\u00E4viss\u00E4 tutkimus- ja muihin tarkoituksiin;'},\n {code: 'b', value: 'Kansalliskirjasto;'},\n {code: 'c', value: 'Laki kulttuuriaineistojen tallettamisesta ja s\u00E4ilytt\u00E4misest\u00E4'},\n {code: 'u', value: 'http://www.finlex.fi/fi/laki/ajantasa/2007/20071433'},\n {code: '5', value: 'FI-Vapaa'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f5060 = {\n tag: '506',\n ind1: '0',\n ind2: ' ',\n subfields: [\n {code: 'a', value: 'Aineisto on vapaasti saatavissa.'},\n {code: 'f', value: 'Unrestricted online access'},\n {code: '2', value: 'star'},\n {code: '9', value: 'FENNI<KEEP>'}\n ]\n };\n\n const f540 = {\n tag: '540',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'c', value: 'This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.'}]\n };\n\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n });\n\n // Tests\n const test = await (async () => {\n const validator = await validatorFactory();\n return {\n validate: async (valid, ...recfields) => {\n const result = await validator.validate(new MarcRecord({fields: recfields}));\n assert.deepEqual(result, {valid});\n },\n\n fix: async (recfields, resfields) => {\n const record = new MarcRecord({fields: recfields});\n await validator.fix(record);\n assert.deepEqual(record.fields, resfields);\n }\n };\n })();\n\n describe('#validate', () => {\n it('Finds the record valid; fields 5061 and 540 are missing but its ok since record is not electronic', async () => {\n await test.validate(true, f337nonElectronic);\n });\n\n it('Finds the record valid; Legal deposit fields 5061 and 540', async () => {\n await test.validate(true, f337, ldf5061new, ldf540);\n });\n\n it('Finds the record invalid; Old phrase in 5061', async () => {\n await test.validate(false, f337, ldf5061old, ldf540);\n });\n\n it('Finds the record invalid; Missing 5061', async () => {\n await test.validate(false, f337, f5060, ldf540);\n });\n\n it('Finds the record invalid; Missing 540', async () => {\n await test.validate(false, f337, ldf5061new, f540);\n });\n\n it('Finds the record invalid; Missing 5061 and 540', async () => {\n await test.validate(false, f337, f5060, f540);\n });\n });\n\n describe('#fix', () => {\n it('Legal deposit fields 5061 and 540; Nothing to add', async () => {\n await test.fix([ldf5061new, ldf540], [ldf5061new, ldf540]);\n });\n\n it('Old phrase in 5061; Overwritten with new phrase', async () => {\n await test.fix([ldf5061old, ldf540], [ldf5061new, ldf540]);\n });\n\n it('540 but missing 5061; Adds 5061', async () => {\n await test.fix([f5060, ldf540], [f5060, ldf5061new, ldf540]);\n });\n\n it('5061 but missing 540; Adds 540', async () => {\n await test.fix([ldf5061new, f540], [ldf5061new, f540, ldf540]);\n });\n\n it('Both, 5061 and 540, missing; Adds 5061 and 540', async () => {\n await test.fix([f5060, f540], [f5060, ldf5061new, f540, ldf540]);\n });\n });\n});\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./addMissingField337.js";
|
|
4
4
|
import { READERS } from "@natlibfi/fixura";
|
|
5
5
|
import generateTests from "@natlibfi/fixugen";
|
|
6
6
|
generateTests({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/addMissingField337.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './addMissingField337.js';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [import.meta.dirname, '..', 'test-fixtures', 'addMissingField337'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n hooks: {\n before: async () => {\n testValidatorFactory();\n }\n }\n});\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n assert.equal(typeof validator.fix, 'function');\n}\n\nasync function callback({getFixture, fix = false}) {\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n\n if (!fix) {\n const result = await validator.validate(record);\n assert.deepEqual(result, expectedResult);\n return;\n }\n\n await validator.fix(record);\n assert.deepEqual(record, expectedResult);\n}\n"],
|
|
5
5
|
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,kBAAiB;AACzB,OAAO,sBAAsB;AAC7B,SAAQ,eAAc;AACtB,OAAO,mBAAmB;AAE1B,cAAc;AAAA,EACZ;AAAA,EACA,MAAM,CAAC,YAAY,SAAS,MAAM,iBAAiB,oBAAoB;AAAA,EACvE,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,IACN,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,YAAY;AAClB,2BAAqB;AAAA,IACvB;AAAA,EACF;AACF,CAAC;AAED,eAAe,uBAAuB;AACpC,QAAM,YAAY,MAAM,iBAAiB;AAEzC,SAAO,MAAM,OAAO,WAAW,QAAQ;AACvC,SAAO,MAAM,OAAO,UAAU,aAAa,QAAQ;AACnD,SAAO,MAAM,OAAO,UAAU,UAAU,UAAU;AAClD,SAAO,MAAM,OAAO,UAAU,KAAK,UAAU;AAC/C;AAEA,eAAe,SAAS,EAAC,YAAY,MAAM,MAAK,GAAG;AACjD,QAAM,YAAY,MAAM,iBAAiB;AACzC,QAAM,SAAS,IAAI,WAAW,WAAW,aAAa,CAAC;AACvD,QAAM,iBAAiB,WAAW,qBAAqB;AAEvD,MAAI,CAAC,KAAK;AACR,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAC9C,WAAO,UAAU,QAAQ,cAAc;AACvC;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,MAAM;AAC1B,SAAO,UAAU,QAAQ,cAAc;AACzC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./addMissingField338.js";
|
|
4
4
|
import { READERS } from "@natlibfi/fixura";
|
|
5
5
|
import generateTests from "@natlibfi/fixugen";
|
|
6
6
|
generateTests({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/addMissingField338.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './addMissingField338.js';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [import.meta.dirname, '..', 'test-fixtures', 'addMissingField338'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n hooks: {\n before: async () => {\n testValidatorFactory();\n }\n }\n});\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n assert.equal(validator.fix, 'function');\n}\n\nasync function callback({getFixture, fix = false}) {\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n assert.deepEqual(result, expectedResult);\n return;\n }\n\n await validator.fix(record);\n assert.deepEqual(record, expectedResult);\n}\n"],
|
|
5
5
|
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,kBAAiB;AACzB,OAAO,sBAAsB;AAC7B,SAAQ,eAAc;AACtB,OAAO,mBAAmB;AAE1B,cAAc;AAAA,EACZ;AAAA,EACA,MAAM,CAAC,YAAY,SAAS,MAAM,iBAAiB,oBAAoB;AAAA,EACvE,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,IACN,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,YAAY;AAClB,2BAAqB;AAAA,IACvB;AAAA,EACF;AACF,CAAC;AAED,eAAe,uBAAuB;AACpC,QAAM,YAAY,MAAM,iBAAiB;AAEzC,SAAO,MAAM,OAAO,WAAW,QAAQ;AACvC,SAAO,MAAM,OAAO,UAAU,aAAa,QAAQ;AACnD,SAAO,MAAM,OAAO,UAAU,UAAU,UAAU;AAClD,SAAO,MAAM,UAAU,KAAK,UAAU;AACxC;AAEA,eAAe,SAAS,EAAC,YAAY,MAAM,MAAK,GAAG;AACjD,QAAM,YAAY,MAAM,iBAAiB;AACzC,QAAM,SAAS,IAAI,WAAW,WAAW,aAAa,CAAC;AACvD,QAAM,iBAAiB,WAAW,qBAAqB;AAGvD,MAAI,CAAC,KAAK;AACR,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAC9C,WAAO,UAAU,QAAQ,cAAc;AACvC;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,MAAM;AAC1B,SAAO,UAAU,QAAQ,cAAc;AACzC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
|
-
import { after, before } from "node:test";
|
|
3
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
4
3
|
import validatorFactory from "./cyrillux-usemarcon-replacement.js";
|
|
5
4
|
import { READERS } from "@natlibfi/fixura";
|
|
6
5
|
import generateTests from "@natlibfi/fixugen";
|
|
7
|
-
before(() => {
|
|
8
|
-
MarcRecord.setValidationOptions({ subfields: false, subfieldValues: false });
|
|
9
|
-
});
|
|
10
|
-
after(() => {
|
|
11
|
-
MarcRecord.setValidationOptions({});
|
|
12
|
-
});
|
|
13
6
|
generateTests({
|
|
14
7
|
callback,
|
|
15
8
|
path: [import.meta.dirname, "..", "test-fixtures", "cyrillux-usemarcon-replacement"],
|
|
@@ -20,7 +13,11 @@ generateTests({
|
|
|
20
13
|
},
|
|
21
14
|
hooks: {
|
|
22
15
|
before: async () => {
|
|
16
|
+
MarcRecord.setValidationOptions({ subfields: false, subfieldValues: false });
|
|
23
17
|
testValidatorFactory();
|
|
18
|
+
},
|
|
19
|
+
after: async () => {
|
|
20
|
+
MarcRecord.setValidationOptions({});
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/cyrillux-usemarcon-replacement.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {
|
|
5
|
-
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './cyrillux-usemarcon-replacement.js';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [import.meta.dirname, '..', 'test-fixtures', 'cyrillux-usemarcon-replacement'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n hooks: {\n before: async () => {\n MarcRecord.setValidationOptions({subfields: false, subfieldValues: false});\n testValidatorFactory();\n },\n after: async () => {\n MarcRecord.setValidationOptions({});\n }\n }\n});\n\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n assert.equal(typeof validator.fix, 'function');\n}\n\nasync function callback({getFixture, fix = false}) {\n const validator = await validatorFactory();\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n assert.deepEqual(result, expectedResult);\n return;\n }\n\n await validator.fix(record);\n assert.deepEqual(record, expectedResult);\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,kBAAiB;AACzB,OAAO,sBAAsB;AAC7B,SAAQ,eAAc;AACtB,OAAO,mBAAmB;AAE1B,cAAc;AAAA,EACZ;AAAA,EACA,MAAM,CAAC,YAAY,SAAS,MAAM,iBAAiB,gCAAgC;AAAA,EACnF,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,IACN,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,YAAY;AAClB,iBAAW,qBAAqB,EAAC,WAAW,OAAO,gBAAgB,MAAK,CAAC;AACzE,2BAAqB;AAAA,IACvB;AAAA,IACA,OAAO,YAAY;AACjB,iBAAW,qBAAqB,CAAC,CAAC;AAAA,IACpC;AAAA,EACF;AACF,CAAC;AAGD,eAAe,uBAAuB;AACpC,QAAM,YAAY,MAAM,iBAAiB;AAEzC,SAAO,MAAM,OAAO,WAAW,QAAQ;AACvC,SAAO,MAAM,OAAO,UAAU,aAAa,QAAQ;AACnD,SAAO,MAAM,OAAO,UAAU,UAAU,UAAU;AAClD,SAAO,MAAM,OAAO,UAAU,KAAK,UAAU;AAC/C;AAEA,eAAe,SAAS,EAAC,YAAY,MAAM,MAAK,GAAG;AACjD,QAAM,YAAY,MAAM,iBAAiB;AACzC,QAAM,SAAS,IAAI,WAAW,WAAW,aAAa,CAAC;AACvD,QAAM,iBAAiB,WAAW,qBAAqB;AAGvD,MAAI,CAAC,KAAK;AACR,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAC9C,WAAO,UAAU,QAAQ,cAAc;AACvC;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,MAAM;AAC1B,SAAO,UAAU,QAAQ,cAAc;AACzC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cyrillux.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./cyrillux.js";
|
|
4
4
|
import { READERS } from "@natlibfi/fixura";
|
|
5
5
|
import generateTests from "@natlibfi/fixugen";
|
|
6
6
|
generateTests({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/cyrillux.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './cyrillux.js';\nimport {READERS} from '@natlibfi/fixura';\nimport generateTests from '@natlibfi/fixugen';\n\ngenerateTests({\n callback,\n path: [import.meta.dirname, '..', 'test-fixtures', 'cyrillux'],\n useMetadataFile: true,\n recurse: false,\n fixura: {\n reader: READERS.JSON\n },\n hooks: {\n before: async () => {\n testValidatorFactory();\n }\n }\n});\n\nasync function testValidatorFactory() {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, 'function');\n assert.equal(typeof validator.fix, 'function');\n}\n\nasync function callback({getFixture, fix = false, config = {}}) {\n const validator = await validatorFactory(config);\n const record = new MarcRecord(getFixture('record.json'));\n const expectedResult = getFixture('expectedResult.json');\n // console.log(expectedResult); // eslint-disable-line\n\n if (!fix) {\n const result = await validator.validate(record);\n assert.deepEqual(result, expectedResult);\n return;\n }\n\n await validator.fix(record);\n assert.deepEqual(record, expectedResult);\n}\n"],
|
|
5
5
|
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,kBAAiB;AACzB,OAAO,sBAAsB;AAC7B,SAAQ,eAAc;AACtB,OAAO,mBAAmB;AAE1B,cAAc;AAAA,EACZ;AAAA,EACA,MAAM,CAAC,YAAY,SAAS,MAAM,iBAAiB,UAAU;AAAA,EAC7D,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AAAA,IACN,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,QAAQ,YAAY;AAClB,2BAAqB;AAAA,IACvB;AAAA,EACF;AACF,CAAC;AAED,eAAe,uBAAuB;AACpC,QAAM,YAAY,MAAM,iBAAiB;AAEzC,SAAO,MAAM,OAAO,WAAW,QAAQ;AACvC,SAAO,MAAM,OAAO,UAAU,aAAa,QAAQ;AACnD,SAAO,MAAM,OAAO,UAAU,UAAU,UAAU;AAClD,SAAO,MAAM,OAAO,UAAU,KAAK,UAAU;AAC/C;AAEA,eAAe,SAAS,EAAC,YAAY,MAAM,OAAO,SAAS,CAAC,EAAC,GAAG;AAC9D,QAAM,YAAY,MAAM,iBAAiB,MAAM;AAC/C,QAAM,SAAS,IAAI,WAAW,WAAW,aAAa,CAAC;AACvD,QAAM,iBAAiB,WAAW,qBAAqB;AAGvD,MAAI,CAAC,KAAK;AACR,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAC9C,WAAO,UAAU,QAAQ,cAAc;AACvC;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,MAAM;AAC1B,SAAO,UAAU,QAAQ,cAAc;AACzC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./double-commas.js";
|
|
4
4
|
import { describe, it } from "node:test";
|
|
5
5
|
describe("double-commas", () => {
|
|
6
6
|
it("Creates a validator", async () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/double-commas.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './double-commas.js';\nimport {describe, it} from 'node:test';\n\ndescribe('double-commas', () => {\n it('Creates a validator', async () => {\n const validator = await validatorFactory();\n\n assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, '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: [{tag: '700', subfields: [{code: 'e', value: 'foo,bar'}]}]\n });\n const result = await validator.validate(record);\n\n assert.deepEqual(result, {valid: true});\n });\n it('Finds the record invalid', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n });\n const result = await validator.validate(record);\n\n assert.deepEqual(result, {valid: false});\n });\n });\n\n describe('#fix', () => {\n it('Fixes the record', async () => {\n const validator = await validatorFactory();\n const record = new MarcRecord({\n fields: [{tag: '700', subfields: [{code: 'e', value: 'foo,,bar'}]}]\n });\n await validator.fix(record);\n\n assert.deepEqual(record.fields, [\n {\n tag: '700',\n ind1: ' ',\n ind2: ' ',\n subfields: [{code: 'e', value: 'foo,bar'}]\n }\n ]);\n });\n });\n});\n"],
|
|
5
5
|
"mappings": "AAAA,OAAO,YAAY;AACnB,SAAQ,kBAAiB;AACzB,OAAO,sBAAsB;AAC7B,SAAQ,UAAU,UAAS;AAE3B,SAAS,iBAAiB,MAAM;AAC9B,KAAG,uBAAuB,YAAY;AACpC,UAAM,YAAY,MAAM,iBAAiB;AAEzC,WAAO,MAAM,OAAO,WAAW,QAAQ;AACvC,WAAO,MAAM,OAAO,UAAU,aAAa,QAAQ;AACnD,WAAO,MAAM,OAAO,UAAU,UAAU,UAAU;AAAA,EACpD,CAAC;AAED,WAAS,aAAa,MAAM;AAC1B,OAAG,0BAA0B,YAAY;AACvC,YAAM,YAAY,MAAM,iBAAiB;AACzC,YAAM,SAAS,IAAI,WAAW;AAAA,QAC5B,QAAQ,CAAC,EAAC,KAAK,OAAO,WAAW,CAAC,EAAC,MAAM,KAAK,OAAO,UAAS,CAAC,EAAC,CAAC;AAAA,MACnE,CAAC;AACD,YAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAE9C,aAAO,UAAU,QAAQ,EAAC,OAAO,KAAI,CAAC;AAAA,IACxC,CAAC;AACD,OAAG,4BAA4B,YAAY;AACzC,YAAM,YAAY,MAAM,iBAAiB;AACzC,YAAM,SAAS,IAAI,WAAW;AAAA,QAC5B,QAAQ,CAAC,EAAC,KAAK,OAAO,WAAW,CAAC,EAAC,MAAM,KAAK,OAAO,WAAU,CAAC,EAAC,CAAC;AAAA,MACpE,CAAC;AACD,YAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAE9C,aAAO,UAAU,QAAQ,EAAC,OAAO,MAAK,CAAC;AAAA,IACzC,CAAC;AAAA,EACH,CAAC;AAED,WAAS,QAAQ,MAAM;AACrB,OAAG,oBAAoB,YAAY;AACjC,YAAM,YAAY,MAAM,iBAAiB;AACzC,YAAM,SAAS,IAAI,WAAW;AAAA,QAC5B,QAAQ,CAAC,EAAC,KAAK,OAAO,WAAW,CAAC,EAAC,MAAM,KAAK,OAAO,WAAU,CAAC,EAAC,CAAC;AAAA,MACpE,CAAC;AACD,YAAM,UAAU,IAAI,MAAM;AAE1B,aAAO,UAAU,OAAO,QAAQ;AAAA,QAC9B;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,UACN,WAAW,CAAC,EAAC,MAAM,KAAK,OAAO,UAAS,CAAC;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./empty-fields.js";
|
|
4
4
|
import { after, before, describe, it } from "node:test";
|
|
5
5
|
before(() => {
|
|
6
6
|
MarcRecord.setValidationOptions({ subfields: false, subfieldValues: false });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/empty-fields.test.js"],
|
|
4
|
-
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from '
|
|
4
|
+
"sourcesContent": ["import assert from 'node:assert';\nimport {MarcRecord} from '@natlibfi/marc-record';\nimport validatorFactory from './empty-fields.js';\nimport {after, before, describe, it} from 'node:test';\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 assert.equal(typeof validator, 'object');\n assert.equal(typeof validator.description, 'string');\n assert.equal(typeof validator.validate, '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 assert.deepEqual(result.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 assert.deepEqual(result, {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 assert.deepEqual(result, {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 assert.deepEqual(record.fields, [\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 assert.deepEqual(record.fields, [\n {\n tag: '001',\n value: '1234567'\n }\n ]);\n });\n });\n});\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { MarcRecord } from "@natlibfi/marc-record";
|
|
3
|
-
import validatorFactory from "
|
|
3
|
+
import validatorFactory from "./ending-punctuation.js";
|
|
4
4
|
import { describe, it } from "node:test";
|
|
5
5
|
describe("ending-punctuation", () => {
|
|
6
6
|
describe("#validate: Indicators and subfields", () => {
|
|
@@ -1479,15 +1479,25 @@ describe("ending-punctuation", () => {
|
|
|
1479
1479
|
const recordValid650FinNo = new MarcRecord({
|
|
1480
1480
|
leader: "",
|
|
1481
1481
|
fields: [
|
|
1482
|
-
{
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1482
|
+
{
|
|
1483
|
+
tag: "650",
|
|
1484
|
+
ind1: " ",
|
|
1485
|
+
ind2: "7",
|
|
1486
|
+
subfields: [
|
|
1487
|
+
{ code: "a", value: "kirjastot" },
|
|
1488
|
+
{ code: "x", value: "atk-j\xE4rjestelm\xE4t" },
|
|
1489
|
+
{ code: "2", value: "kauno/fin" }
|
|
1490
|
+
]
|
|
1491
|
+
},
|
|
1492
|
+
{
|
|
1493
|
+
tag: "650",
|
|
1494
|
+
ind1: " ",
|
|
1495
|
+
ind2: "7",
|
|
1496
|
+
subfields: [
|
|
1497
|
+
{ code: "a", value: "ajovalot" },
|
|
1498
|
+
{ code: "2", value: "juho" }
|
|
1499
|
+
]
|
|
1500
|
+
}
|
|
1491
1501
|
]
|
|
1492
1502
|
});
|
|
1493
1503
|
const recordValid650EngNoControl = new MarcRecord({
|
|
@@ -1605,15 +1615,25 @@ describe("ending-punctuation", () => {
|
|
|
1605
1615
|
const recordInvalid650FinYes = new MarcRecord({
|
|
1606
1616
|
leader: "",
|
|
1607
1617
|
fields: [
|
|
1608
|
-
{
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1618
|
+
{
|
|
1619
|
+
tag: "650",
|
|
1620
|
+
ind1: " ",
|
|
1621
|
+
ind2: "7",
|
|
1622
|
+
subfields: [
|
|
1623
|
+
{ code: "a", value: "kirjastot" },
|
|
1624
|
+
{ code: "x", value: "atk-j\xE4rjestelm\xE4t." },
|
|
1625
|
+
{ code: "2", value: "kauno/fin" }
|
|
1626
|
+
]
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
tag: "650",
|
|
1630
|
+
ind1: " ",
|
|
1631
|
+
ind2: "7",
|
|
1632
|
+
subfields: [
|
|
1633
|
+
{ code: "a", value: "ajovalot." },
|
|
1634
|
+
{ code: "2", value: "juho" }
|
|
1635
|
+
]
|
|
1636
|
+
}
|
|
1617
1637
|
]
|
|
1618
1638
|
});
|
|
1619
1639
|
const recordInvalid650EngNoControl = new MarcRecord({
|