const tape = require('tape'); const _test = require('tape-promise').default; // <---- notice 'default' const test = _test(tape); // decorate tape const fs = require('fs'); const jsonfile = require('jsonfile'); const LV = require('../ncas/lv'); const lvScraper = new LV(); const failure = { 'fail':true }; const empty = {}; test.test('Payment Services', async t => { test.test('Latvia:: Process PS Entity 001', async t => { const htmlFile = 'tests/data/lv/ent_001.html'; t.test('LV::Extract entity details', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_001_detail.json'); const output = await lvScraper.extractEntitySections(psDetail, 'div#featured-articles-title'); t.deepEquals(output, expectedJSON, 'Extracted entity details from Page'); t.end(); }); t.test('LV::Extract entity Market Segments', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = [ { 'marketSegment': 'Payment institutions' } ]; const output = await lvScraper.extractEntitySubSections(psDetail, 'h2:contains("Market segments")'); t.deepEquals(output, expectedJSON, 'Extracted entity Market Segments from Page'); t.end(); }); t.test('LV::Extract entity Related Persons', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = [{ 'nameFirstNameSurname': 'Igor Ivchenko', 'personalIdentificationNumber': 'Member of the Board' }]; const output = await lvScraper.extractEntitySubSections(psDetail, 'h2:contains("Related persons")'); t.deepEquals(output, expectedJSON, 'Extracted entity Related Persons from Page'); t.end(); }); t.test('LV::Extract entity Licenses', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_001_licenses.json'); const output = await lvScraper.extractEntityLicenses(psDetail); t.deepEquals(output, expectedJSON, 'Extracted entity Licenses from Page'); t.end(); }); t.end(); }); test.test('Latvia:: Process PS Entity 002', async t => { const htmlFile = 'tests/data/lv/ent_002.html'; t.test('LV::Extract entity details', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_002_detail.json'); const output = await lvScraper.extractEntitySections(psDetail, 'div#featured-articles-title'); t.deepEquals(output, expectedJSON, 'Extracted entity details from Page'); t.end(); }); t.test('LV::Extract entity Market Segments', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = [ { 'marketSegment': 'Payment institutions' }, { 'marketSegment': 'Insurance Intermediaries' } ]; const output = await lvScraper.extractEntitySubSections(psDetail, 'h2:contains("Market segments")'); t.deepEquals(output, expectedJSON, 'Extracted entity Market Segments from Page'); t.end(); }); t.test('LV::Extract entity Related Persons', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_002_related.json'); const output = await lvScraper.extractEntitySubSections(psDetail, 'h2:contains("Related persons")'); t.deepEquals(output, expectedJSON, 'Extracted entity Related Persons from Page'); t.end(); }); t.test('LV::Extract entity Licenses', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = []; const output = await lvScraper.extractEntityLicenses(psDetail); t.deepEquals(output, expectedJSON, 'Extracted entity Licenses from Page'); t.end(); }); t.end(); }); test.test('Latvia:: Process PS Entity 003', async t => { const htmlFile = 'tests/data/lv/ent_003.html'; t.test('LV::Extract entity details', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_003_detail.json'); const output = await lvScraper.extractEntitySections(psDetail, 'div#featured-articles-title'); t.deepEquals(output, expectedJSON, 'Extracted entity details from Page'); t.end(); }); t.end(); }); test.test('Latvia:: Process PS Entity 004', async t => { const htmlFile = 'tests/data/lv/ent_004.html'; t.test('LV::Extract entity sanctions', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = jsonfile.readFileSync('tests/data/lv/ent_004_sanctions.json'); const output = await lvScraper.extractEntitySections(psDetail, 'h2:contains("Sanctions")'); t.deepEquals(output, expectedJSON, 'Extracted entity sanctions from Page'); t.end(); }); t.end(); }); test.test('Latvia:: Process CI Entity 005', async t => { const htmlFile = 'tests/data/lv/ent_005.html'; t.test('LV::Extract entity sanctions', async t => { const psDetail = fs.readFileSync(htmlFile); const expectedJSON = [ { 'marketSegment': 'Credit institutions', 'telephone': '67081034', 'email': 'info@signetbank.com', 'website': 'http://www.signetbank.com/' }, { 'marketSegment': 'Investment service providers' } ]; const output = await lvScraper.extractEntitySubSections(psDetail, 'h2:contains("Market segments")'); t.deepEquals(output, expectedJSON, 'Extracted entity sanctions from Page'); t.end(); }); t.end(); }); t.end(); });