UNPKG

@natlibfi/melinda-record-match-validator

Version:

Validates if two records matched by melinda-record-matching can be merged and sets merge priority

79 lines (65 loc) 2.14 kB
import {expect} from 'chai'; import {READERS} from '@natlibfi/fixura'; import generateTests from '@natlibfi/fixugen'; import {getPartSetFeatures, checkPartSetFeatures, getTitleFeaturesType} from '../src/partsAndSets'; import {MarcRecord} from '@natlibfi/marc-record'; import createDebugLogger from 'debug'; const debug = createDebugLogger('@natlibfi/melinda-record-match-validator:partsAndSets:test'); const debugData = debug.extend('data'); testGet(); testCheck(); testTitle(); function testGet() { generateTests({ callback, path: [__dirname, '..', 'test-fixtures', 'partsAndSets', 'getPartSetFeatures'], useMetadataFile: true, recurse: false, fixura: { reader: READERS.JSON } }); function callback({getFixture, expectedResults}) { const record = new MarcRecord(getFixture('record.json'), {subfieldValues: false}); debugData(record); const partSetFeatures = getPartSetFeatures(record); debugData(partSetFeatures); expect(partSetFeatures.type).to.eql(expectedResults.type); } } function testCheck() { generateTests({ callback, path: [__dirname, '..', 'test-fixtures', 'partsAndSets', 'checkPartSetFeatures'], useMetadataFile: true, recurse: false, fixura: { reader: READERS.JSON1 } }); function callback({recordValuesA, recordValuesB, expectedResults}) { const checkResults = checkPartSetFeatures({partSetFeatures1: recordValuesA, partSetFeatures2: recordValuesB}); debug(`Result: ${checkResults}`); expect(checkResults).to.eql(expectedResults); } } function testTitle() { testGetTitleFeaturesType(); function testGetTitleFeaturesType() { generateTests({ callback, path: [__dirname, '..', 'test-fixtures', 'partsAndSets', 'partsAndSetsTitleFeatures'], useMetadataFile: true, recurse: false, fixura: { reader: READERS.JSON1 } }); function callback({title, expectedResults}) { debug(`Testing: ${JSON.stringify(title)}`); const type = getTitleFeaturesType(title); debug(`Result: ${type}`); expect(type).to.eql(expectedResults); } } }