israeli-bank-scrapers
Version:
Provide scrapers for all major Israeli banks and credit card companies
71 lines (68 loc) • 12.1 kB
JavaScript
;
var _baseScraperWithBrowser = require("./base-scraper-with-browser");
var _leumi = _interopRequireDefault(require("./leumi"));
var _definitions = require("../definitions");
var _debug = require("../helpers/debug");
var _testsUtils = require("../tests/tests-utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const COMPANY_ID = 'leumi'; // TODO this property should be hard-coded in the provider
const testsConfig = (0, _testsUtils.getTestsConfig)();
const debug = (0, _debug.getDebug)('leumi-test');
describe('Leumi legacy scraper', () => {
beforeAll(() => {
(0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
});
test('should expose login fields in scrapers constant', () => {
expect(_definitions.SCRAPERS.leumi).toBeDefined();
expect(_definitions.SCRAPERS.leumi.loginFields).toContain('username');
expect(_definitions.SCRAPERS.leumi.loginFields).toContain('password');
});
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
const options = {
...testsConfig.options,
companyId: COMPANY_ID
};
const scraper = new _leumi.default(options);
const result = await scraper.scrape({
username: 'e10s12',
password: '3f3ss3d'
});
expect(result).toBeDefined();
expect(result.success).toBeFalsy();
expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
});
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID)('should scrape transactions', async () => {
const options = {
...testsConfig.options,
companyId: COMPANY_ID
};
const scraper = new _leumi.default(options);
const result = await scraper.scrape(testsConfig.credentials.leumi);
expect(result).toBeDefined();
const error = `${result.errorType || ''} ${result.errorMessage || ''}`.trim();
expect(error).toBe('');
expect(result.success).toBeTruthy();
(0, _testsUtils.exportTransactions)(COMPANY_ID, result.accounts || []);
// Validate savings accounts if they exist
expect(result.accounts).toBeDefined();
const savingsAccounts = result.accounts?.filter(account => account.savingsAccount === true);
debug('Total accounts:', result.accounts?.length);
debug('Savings accounts found:', savingsAccounts?.length);
if (savingsAccounts && savingsAccounts.length > 0) {
debug('Savings account details:');
savingsAccounts.forEach(account => {
debug(` - Account: ${account.accountNumber}, Balance: ${account.balance}`);
});
// Verify savings account properties
savingsAccounts.forEach(account => {
expect(account.savingsAccount).toBe(true);
expect(account.accountNumber).toMatch(/ID/);
expect(account.balance).toBeDefined();
expect(account.txns).toBeDefined();
});
} else {
debug('No savings accounts found - this may be expected if the test account has no deposits');
}
});
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsInJlcXVpcmUiLCJfbGV1bWkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RlZmluaXRpb25zIiwiX2RlYnVnIiwiX3Rlc3RzVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJDT01QQU5ZX0lEIiwidGVzdHNDb25maWciLCJnZXRUZXN0c0NvbmZpZyIsImRlYnVnIiwiZ2V0RGVidWciLCJkZXNjcmliZSIsImJlZm9yZUFsbCIsImV4dGVuZEFzeW5jVGltZW91dCIsInRlc3QiLCJleHBlY3QiLCJTQ1JBUEVSUyIsImxldW1pIiwidG9CZURlZmluZWQiLCJsb2dpbkZpZWxkcyIsInRvQ29udGFpbiIsIm1heWJlVGVzdENvbXBhbnlBUEkiLCJjb25maWciLCJjb21wYW55QVBJIiwiaW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsImNvbXBhbnlJZCIsInNjcmFwZXIiLCJMZXVtaVNjcmFwZXIiLCJyZXN1bHQiLCJzY3JhcGUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwic3VjY2VzcyIsInRvQmVGYWxzeSIsImVycm9yVHlwZSIsInRvQmUiLCJMb2dpblJlc3VsdHMiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVkZW50aWFscyIsImVycm9yIiwiZXJyb3JNZXNzYWdlIiwidHJpbSIsInRvQmVUcnV0aHkiLCJleHBvcnRUcmFuc2FjdGlvbnMiLCJhY2NvdW50cyIsInNhdmluZ3NBY2NvdW50cyIsImZpbHRlciIsImFjY291bnQiLCJzYXZpbmdzQWNjb3VudCIsImxlbmd0aCIsImZvckVhY2giLCJhY2NvdW50TnVtYmVyIiwiYmFsYW5jZSIsInRvTWF0Y2giLCJ0eG5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2xldW1pLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCBMZXVtaVNjcmFwZXIgZnJvbSAnLi9sZXVtaSc7XG5pbXBvcnQgeyBTQ1JBUEVSUyB9IGZyb20gJy4uL2RlZmluaXRpb25zJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyBleHBvcnRUcmFuc2FjdGlvbnMsIGV4dGVuZEFzeW5jVGltZW91dCwgZ2V0VGVzdHNDb25maWcsIG1heWJlVGVzdENvbXBhbnlBUEkgfSBmcm9tICcuLi90ZXN0cy90ZXN0cy11dGlscyc7XG5cbmNvbnN0IENPTVBBTllfSUQgPSAnbGV1bWknOyAvLyBUT0RPIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIGhhcmQtY29kZWQgaW4gdGhlIHByb3ZpZGVyXG5jb25zdCB0ZXN0c0NvbmZpZyA9IGdldFRlc3RzQ29uZmlnKCk7XG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdsZXVtaS10ZXN0Jyk7XG5cbmRlc2NyaWJlKCdMZXVtaSBsZWdhY3kgc2NyYXBlcicsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICBleHRlbmRBc3luY1RpbWVvdXQoKTsgLy8gVGhlIGRlZmF1bHQgdGltZW91dCBpcyA1IHNlY29uZHMgcGVyIGFzeW5jIHRlc3QsIHRoaXMgZnVuY3Rpb24gZXh0ZW5kcyB0aGUgdGltZW91dCB2YWx1ZVxuICB9KTtcblxuICB0ZXN0KCdzaG91bGQgZXhwb3NlIGxvZ2luIGZpZWxkcyBpbiBzY3JhcGVycyBjb25zdGFudCcsICgpID0+IHtcbiAgICBleHBlY3QoU0NSQVBFUlMubGV1bWkpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KFNDUkFQRVJTLmxldW1pLmxvZ2luRmllbGRzKS50b0NvbnRhaW4oJ3VzZXJuYW1lJyk7XG4gICAgZXhwZWN0KFNDUkFQRVJTLmxldW1pLmxvZ2luRmllbGRzKS50b0NvbnRhaW4oJ3Bhc3N3b3JkJyk7XG4gIH0pO1xuXG4gIG1heWJlVGVzdENvbXBhbnlBUEkoQ09NUEFOWV9JRCwgY29uZmlnID0+IGNvbmZpZy5jb21wYW55QVBJLmludmFsaWRQYXNzd29yZCkoXG4gICAgJ3Nob3VsZCBmYWlsIG9uIGludmFsaWQgdXNlci9wYXNzd29yZFwiJyxcbiAgICBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAuLi50ZXN0c0NvbmZpZy5vcHRpb25zLFxuICAgICAgICBjb21wYW55SWQ6IENPTVBBTllfSUQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzY3JhcGVyID0gbmV3IExldW1pU2NyYXBlcihvcHRpb25zKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoeyB1c2VybmFtZTogJ2UxMHMxMicsIHBhc3N3b3JkOiAnM2Yzc3MzZCcgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0LnN1Y2Nlc3MpLnRvQmVGYWxzeSgpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvclR5cGUpLnRvQmUoTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCk7XG4gICAgfSxcbiAgKTtcblxuICBtYXliZVRlc3RDb21wYW55QVBJKENPTVBBTllfSUQpKCdzaG91bGQgc2NyYXBlIHRyYW5zYWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyYXBlciA9IG5ldyBMZXVtaVNjcmFwZXIob3B0aW9ucyk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2NyYXBlci5zY3JhcGUodGVzdHNDb25maWcuY3JlZGVudGlhbHMubGV1bWkpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgY29uc3QgZXJyb3IgPSBgJHtyZXN1bHQuZXJyb3JUeXBlIHx8ICcnfSAke3Jlc3VsdC5lcnJvck1lc3NhZ2UgfHwgJyd9YC50cmltKCk7XG4gICAgZXhwZWN0KGVycm9yKS50b0JlKCcnKTtcbiAgICBleHBlY3QocmVzdWx0LnN1Y2Nlc3MpLnRvQmVUcnV0aHkoKTtcblxuICAgIGV4cG9ydFRyYW5zYWN0aW9ucyhDT01QQU5ZX0lELCByZXN1bHQuYWNjb3VudHMgfHwgW10pO1xuXG4gICAgLy8gVmFsaWRhdGUgc2F2aW5ncyBhY2NvdW50cyBpZiB0aGV5IGV4aXN0XG4gICAgZXhwZWN0KHJlc3VsdC5hY2NvdW50cykudG9CZURlZmluZWQoKTtcbiAgICBjb25zdCBzYXZpbmdzQWNjb3VudHMgPSByZXN1bHQuYWNjb3VudHM/LmZpbHRlcihhY2NvdW50ID0+IGFjY291bnQuc2F2aW5nc0FjY291bnQgPT09IHRydWUpO1xuXG4gICAgZGVidWcoJ1RvdGFsIGFjY291bnRzOicsIHJlc3VsdC5hY2NvdW50cz8ubGVuZ3RoKTtcbiAgICBkZWJ1ZygnU2F2aW5ncyBhY2NvdW50cyBmb3VuZDonLCBzYXZpbmdzQWNjb3VudHM/Lmxlbmd0aCk7XG5cbiAgICBpZiAoc2F2aW5nc0FjY291bnRzICYmIHNhdmluZ3NBY2NvdW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBkZWJ1ZygnU2F2aW5ncyBhY2NvdW50IGRldGFpbHM6Jyk7XG4gICAgICBzYXZpbmdzQWNjb3VudHMuZm9yRWFjaChhY2NvdW50ID0+IHtcbiAgICAgICAgZGVidWcoYCAgLSBBY2NvdW50OiAke2FjY291bnQuYWNjb3VudE51bWJlcn0sIEJhbGFuY2U6ICR7YWNjb3VudC5iYWxhbmNlfWApO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFZlcmlmeSBzYXZpbmdzIGFjY291bnQgcHJvcGVydGllc1xuICAgICAgc2F2aW5nc0FjY291bnRzLmZvckVhY2goYWNjb3VudCA9PiB7XG4gICAgICAgIGV4cGVjdChhY2NvdW50LnNhdmluZ3NBY2NvdW50KS50b0JlKHRydWUpO1xuICAgICAgICBleHBlY3QoYWNjb3VudC5hY2NvdW50TnVtYmVyKS50b01hdGNoKC9JRC8pO1xuICAgICAgICBleHBlY3QoYWNjb3VudC5iYWxhbmNlKS50b0JlRGVmaW5lZCgpO1xuICAgICAgICBleHBlY3QoYWNjb3VudC50eG5zKS50b0JlRGVmaW5lZCgpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdObyBzYXZpbmdzIGFjY291bnRzIGZvdW5kIC0gdGhpcyBtYXkgYmUgZXhwZWN0ZWQgaWYgdGhlIHRlc3QgYWNjb3VudCBoYXMgbm8gZGVwb3NpdHMnKTtcbiAgICB9XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUFtSCxTQUFBRSx1QkFBQUksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVuSCxNQUFNRyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUM7QUFDNUIsTUFBTUMsV0FBVyxHQUFHLElBQUFDLDBCQUFjLEVBQUMsQ0FBQztBQUNwQyxNQUFNQyxLQUFLLEdBQUcsSUFBQUMsZUFBUSxFQUFDLFlBQVksQ0FBQztBQUVwQ0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLE1BQU07RUFDckNDLFNBQVMsQ0FBQyxNQUFNO0lBQ2QsSUFBQUMsOEJBQWtCLEVBQUMsQ0FBQyxDQUFDLENBQUM7RUFDeEIsQ0FBQyxDQUFDO0VBRUZDLElBQUksQ0FBQyxpREFBaUQsRUFBRSxNQUFNO0lBQzVEQyxNQUFNLENBQUNDLHFCQUFRLENBQUNDLEtBQUssQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUNwQ0gsTUFBTSxDQUFDQyxxQkFBUSxDQUFDQyxLQUFLLENBQUNFLFdBQVcsQ0FBQyxDQUFDQyxTQUFTLENBQUMsVUFBVSxD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