israeli-bank-scrapers 6.1.1 → 6.1.3
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/lib/assertNever.js +7 -5
- package/lib/constants.js +16 -13
- package/lib/definitions.js +113 -109
- package/lib/helpers/browser.js +13 -9
- package/lib/helpers/dates.js +19 -18
- package/lib/helpers/debug.js +9 -9
- package/lib/helpers/elements-interactions.js +82 -78
- package/lib/helpers/fetch.js +85 -82
- package/lib/helpers/navigation.js +28 -24
- package/lib/helpers/storage.js +11 -10
- package/lib/helpers/transactions.js +32 -33
- package/lib/helpers/waiting.js +42 -45
- package/lib/index.js +82 -15
- package/lib/scrapers/amex.js +13 -11
- package/lib/scrapers/amex.test.d.ts +1 -0
- package/lib/scrapers/amex.test.js +49 -0
- package/lib/scrapers/base-beinleumi-group.d.ts +32 -0
- package/lib/scrapers/base-beinleumi-group.js +350 -234
- package/lib/scrapers/base-isracard-amex.js +273 -273
- package/lib/scrapers/base-scraper-with-browser.js +263 -241
- package/lib/scrapers/base-scraper-with-browser.test.d.ts +1 -0
- package/lib/scrapers/base-scraper-with-browser.test.js +53 -0
- package/lib/scrapers/base-scraper.js +82 -82
- package/lib/scrapers/behatsdaa.js +103 -98
- package/lib/scrapers/behatsdaa.test.d.ts +1 -0
- package/lib/scrapers/behatsdaa.test.js +46 -0
- package/lib/scrapers/beinleumi.js +13 -11
- package/lib/scrapers/beinleumi.test.d.ts +1 -0
- package/lib/scrapers/beinleumi.test.js +47 -0
- package/lib/scrapers/beyahad-bishvilha.js +132 -132
- package/lib/scrapers/beyahad-bishvilha.test.d.ts +1 -0
- package/lib/scrapers/beyahad-bishvilha.test.js +47 -0
- package/lib/scrapers/discount.js +101 -97
- package/lib/scrapers/discount.test.d.ts +1 -0
- package/lib/scrapers/discount.test.js +49 -0
- package/lib/scrapers/errors.js +25 -22
- package/lib/scrapers/factory.js +67 -66
- package/lib/scrapers/factory.test.d.ts +1 -0
- package/lib/scrapers/factory.test.js +19 -0
- package/lib/scrapers/hapoalim.js +175 -162
- package/lib/scrapers/hapoalim.test.d.ts +1 -0
- package/lib/scrapers/hapoalim.test.js +47 -0
- package/lib/scrapers/interface.js +5 -2
- package/lib/scrapers/isracard.js +13 -11
- package/lib/scrapers/isracard.test.d.ts +1 -0
- package/lib/scrapers/isracard.test.js +49 -0
- package/lib/scrapers/leumi.js +170 -167
- package/lib/scrapers/leumi.test.d.ts +1 -0
- package/lib/scrapers/leumi.test.js +47 -0
- package/lib/scrapers/massad.js +13 -11
- package/lib/scrapers/max.js +261 -261
- package/lib/scrapers/max.test.d.ts +1 -0
- package/lib/scrapers/max.test.js +65 -0
- package/lib/scrapers/mercantile.js +16 -14
- package/lib/scrapers/mercantile.test.d.ts +1 -0
- package/lib/scrapers/mercantile.test.js +45 -0
- package/lib/scrapers/mizrahi.js +154 -158
- package/lib/scrapers/mizrahi.test.d.ts +1 -0
- package/lib/scrapers/mizrahi.test.js +53 -0
- package/lib/scrapers/one-zero-queries.js +7 -4
- package/lib/scrapers/one-zero.js +221 -176
- package/lib/scrapers/one-zero.test.d.ts +1 -0
- package/lib/scrapers/one-zero.test.js +51 -0
- package/lib/scrapers/otsar-hahayal.js +13 -11
- package/lib/scrapers/otsar-hahayal.test.d.ts +1 -0
- package/lib/scrapers/otsar-hahayal.test.js +47 -0
- package/lib/scrapers/pagi.js +13 -11
- package/lib/scrapers/pagi.test.d.ts +1 -0
- package/lib/scrapers/pagi.test.js +47 -0
- package/lib/scrapers/union-bank.js +173 -172
- package/lib/scrapers/union-bank.test.d.ts +1 -0
- package/lib/scrapers/union-bank.test.js +47 -0
- package/lib/scrapers/visa-cal.d.ts +2 -0
- package/lib/scrapers/visa-cal.js +263 -254
- package/lib/scrapers/visa-cal.test.d.ts +1 -0
- package/lib/scrapers/visa-cal.test.js +49 -0
- package/lib/scrapers/yahav.js +206 -190
- package/lib/scrapers/yahav.test.d.ts +1 -0
- package/lib/scrapers/yahav.test.js +49 -0
- package/lib/transactions.js +16 -13
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _max = _interopRequireWildcard(require("./max"));
|
|
4
|
+
var _testsUtils = require("../tests/tests-utils");
|
|
5
|
+
var _definitions = require("../definitions");
|
|
6
|
+
var _baseScraperWithBrowser = require("./base-scraper-with-browser");
|
|
7
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
8
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
|
+
const COMPANY_ID = 'max'; // TODO this property should be hard-coded in the provider
|
|
10
|
+
const testsConfig = (0, _testsUtils.getTestsConfig)();
|
|
11
|
+
describe('Max scraper', () => {
|
|
12
|
+
beforeAll(() => {
|
|
13
|
+
(0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
|
|
14
|
+
});
|
|
15
|
+
test('should expose login fields in scrapers constant', () => {
|
|
16
|
+
expect(_definitions.SCRAPERS.max).toBeDefined();
|
|
17
|
+
expect(_definitions.SCRAPERS.max.loginFields).toContain('username');
|
|
18
|
+
expect(_definitions.SCRAPERS.max.loginFields).toContain('password');
|
|
19
|
+
});
|
|
20
|
+
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
|
|
21
|
+
const options = {
|
|
22
|
+
...testsConfig.options,
|
|
23
|
+
companyId: COMPANY_ID
|
|
24
|
+
};
|
|
25
|
+
const scraper = new _max.default(options);
|
|
26
|
+
const result = await scraper.scrape({
|
|
27
|
+
username: 'e10s12',
|
|
28
|
+
password: '3f3ss3d'
|
|
29
|
+
});
|
|
30
|
+
expect(result).toBeDefined();
|
|
31
|
+
expect(result.success).toBeFalsy();
|
|
32
|
+
expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
|
|
33
|
+
});
|
|
34
|
+
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID)('should scrape transactions"', async () => {
|
|
35
|
+
const options = {
|
|
36
|
+
...testsConfig.options,
|
|
37
|
+
companyId: COMPANY_ID
|
|
38
|
+
};
|
|
39
|
+
const scraper = new _max.default(options);
|
|
40
|
+
const result = await scraper.scrape(testsConfig.credentials.max);
|
|
41
|
+
expect(result).toBeDefined();
|
|
42
|
+
const error = `${result.errorType || ''} ${result.errorMessage || ''}`.trim();
|
|
43
|
+
expect(error).toBe('');
|
|
44
|
+
expect(result.success).toBeTruthy();
|
|
45
|
+
(0, _testsUtils.exportTransactions)(COMPANY_ID, result.accounts || []);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
describe('getMemo', () => {
|
|
49
|
+
test.each([[{
|
|
50
|
+
comments: ''
|
|
51
|
+
}, ''], [{
|
|
52
|
+
comments: 'comment without funds'
|
|
53
|
+
}, 'comment without funds'], [{
|
|
54
|
+
comments: '',
|
|
55
|
+
fundsTransferReceiverOrTransfer: 'Daniel H'
|
|
56
|
+
}, 'Daniel H'], [{
|
|
57
|
+
comments: '',
|
|
58
|
+
fundsTransferReceiverOrTransfer: 'Daniel',
|
|
59
|
+
fundsTransferComment: 'Foo bar'
|
|
60
|
+
}, 'Daniel: Foo bar']])('%o should create memo: %s', (transaction, expected) => {
|
|
61
|
+
const memo = (0, _max.getMemo)(transaction);
|
|
62
|
+
expect(memo).toBe(expected);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF4IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3Rlc3RzVXRpbHMiLCJfZGVmaW5pdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkNPTVBBTllfSUQiLCJ0ZXN0c0NvbmZpZyIsImdldFRlc3RzQ29uZmlnIiwiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJleHRlbmRBc3luY1RpbWVvdXQiLCJ0ZXN0IiwiZXhwZWN0IiwiU0NSQVBFUlMiLCJtYXgiLCJ0b0JlRGVmaW5lZCIsImxvZ2luRmllbGRzIiwidG9Db250YWluIiwibWF5YmVUZXN0Q29tcGFueUFQSSIsImNvbmZpZyIsImNvbXBhbnlBUEkiLCJpbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY29tcGFueUlkIiwic2NyYXBlciIsIk1heFNjcmFwZXIiLCJyZXN1bHQiLCJzY3JhcGUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwic3VjY2VzcyIsInRvQmVGYWxzeSIsImVycm9yVHlwZSIsInRvQmUiLCJMb2dpblJlc3VsdHMiLCJJbnZhbGlkUGFzc3dvcmQiLCJjcmVkZW50aWFscyIsImVycm9yIiwiZXJyb3JNZXNzYWdlIiwidHJpbSIsInRvQmVUcnV0aHkiLCJleHBvcnRUcmFuc2FjdGlvbnMiLCJhY2NvdW50cyIsImVhY2giLCJjb21tZW50cyIsImZ1bmRzVHJhbnNmZXJSZWNlaXZlck9yVHJhbnNmZXIiLCJmdW5kc1RyYW5zZmVyQ29tbWVudCIsInRyYW5zYWN0aW9uIiwiZXhwZWN0ZWQiLCJtZW1vIiwiZ2V0TWVtbyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudGVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWF4U2NyYXBlciwgeyBnZXRNZW1vIH0gZnJvbSAnLi9tYXgnO1xuaW1wb3J0IHsgbWF5YmVUZXN0Q29tcGFueUFQSSwgZXh0ZW5kQXN5bmNUaW1lb3V0LCBnZXRUZXN0c0NvbmZpZywgZXhwb3J0VHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vdGVzdHMvdGVzdHMtdXRpbHMnO1xuaW1wb3J0IHsgU0NSQVBFUlMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5jb25zdCBDT01QQU5ZX0lEID0gJ21heCc7IC8vIFRPRE8gdGhpcyBwcm9wZXJ0eSBzaG91bGQgYmUgaGFyZC1jb2RlZCBpbiB0aGUgcHJvdmlkZXJcbmNvbnN0IHRlc3RzQ29uZmlnID0gZ2V0VGVzdHNDb25maWcoKTtcblxuZGVzY3JpYmUoJ01heCBzY3JhcGVyJywgKCkgPT4ge1xuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIGV4dGVuZEFzeW5jVGltZW91dCgpOyAvLyBUaGUgZGVmYXVsdCB0aW1lb3V0IGlzIDUgc2Vjb25kcyBwZXIgYXN5bmMgdGVzdCwgdGhpcyBmdW5jdGlvbiBleHRlbmRzIHRoZSB0aW1lb3V0IHZhbHVlXG4gIH0pO1xuXG4gIHRlc3QoJ3Nob3VsZCBleHBvc2UgbG9naW4gZmllbGRzIGluIHNjcmFwZXJzIGNvbnN0YW50JywgKCkgPT4ge1xuICAgIGV4cGVjdChTQ1JBUEVSUy5tYXgpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KFNDUkFQRVJTLm1heC5sb2dpbkZpZWxkcykudG9Db250YWluKCd1c2VybmFtZScpO1xuICAgIGV4cGVjdChTQ1JBUEVSUy5tYXgubG9naW5GaWVsZHMpLnRvQ29udGFpbigncGFzc3dvcmQnKTtcbiAgfSk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDT01QQU5ZX0lELCBjb25maWcgPT4gY29uZmlnLmNvbXBhbnlBUEkuaW52YWxpZFBhc3N3b3JkKShcbiAgICAnc2hvdWxkIGZhaWwgb24gaW52YWxpZCB1c2VyL3Bhc3N3b3JkXCInLFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRlc3RzQ29uZmlnLm9wdGlvbnMsXG4gICAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNjcmFwZXIgPSBuZXcgTWF4U2NyYXBlcihvcHRpb25zKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2NyYXBlci5zY3JhcGUoeyB1c2VybmFtZTogJ2UxMHMxMicsIHBhc3N3b3JkOiAnM2Yzc3MzZCcgfSk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QocmVzdWx0LnN1Y2Nlc3MpLnRvQmVGYWxzeSgpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvclR5cGUpLnRvQmUoTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZCk7XG4gICAgfSxcbiAgKTtcblxuICBtYXliZVRlc3RDb21wYW55QVBJKENPTVBBTllfSUQpKCdzaG91bGQgc2NyYXBlIHRyYW5zYWN0aW9uc1wiJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAuLi50ZXN0c0NvbmZpZy5vcHRpb25zLFxuICAgICAgY29tcGFueUlkOiBDT01QQU5ZX0lELFxuICAgIH07XG5cbiAgICBjb25zdCBzY3JhcGVyID0gbmV3IE1heFNjcmFwZXIob3B0aW9ucyk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2NyYXBlci5zY3JhcGUodGVzdHNDb25maWcuY3JlZGVudGlhbHMubWF4KTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIGNvbnN0IGVycm9yID0gYCR7cmVzdWx0LmVycm9yVHlwZSB8fCAnJ30gJHtyZXN1bHQuZXJyb3JNZXNzYWdlIHx8ICcnfWAudHJpbSgpO1xuICAgIGV4cGVjdChlcnJvcikudG9CZSgnJyk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlVHJ1dGh5KCk7XG5cbiAgICBleHBvcnRUcmFuc2FjdGlvbnMoQ09NUEFOWV9JRCwgcmVzdWx0LmFjY291bnRzIHx8IFtdKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2dldE1lbW8nLCAoKSA9PiB7XG4gIHR5cGUgVHJhbnNhY3Rpb25Gb3JNZW1vVGVzdCA9IFBhcmFtZXRlcnM8dHlwZW9mIGdldE1lbW8+WzBdO1xuICB0ZXN0LmVhY2g8W1RyYW5zYWN0aW9uRm9yTWVtb1Rlc3QsIHN0cmluZ10+KFtcbiAgICBbeyBjb21tZW50czogJycgfSwgJyddLFxuICAgIFt7IGNvbW1lbnRzOiAnY29tbWVudCB3aXRob3V0IGZ1bmRzJyB9LCAnY29tbWVudCB3aXRob3V0IGZ1bmRzJ10sXG4gICAgW3sgY29tbWVudHM6ICcnLCBmdW5kc1RyYW5zZmVyUmVjZWl2ZXJPclRyYW5zZmVyOiAnRGFuaWVsIEgnIH0sICdEYW5pZWwgSCddLFxuICAgIFt7IGNvbW1lbnRzOiAnJywgZnVuZHNUcmFuc2ZlclJlY2VpdmVyT3JUcmFuc2ZlcjogJ0RhbmllbCcsIGZ1bmRzVHJhbnNmZXJDb21tZW50OiAnRm9vIGJhcicgfSwgJ0RhbmllbDogRm9vIGJhciddLFxuICBdKSgnJW8gc2hvdWxkIGNyZWF0ZSBtZW1vOiAlcycsICh0cmFuc2FjdGlvbiwgZXhwZWN0ZWQpID0+IHtcbiAgICBjb25zdCBtZW1vID0gZ2V0TWVtbyh0cmFuc2FjdGlvbik7XG4gICAgZXhwZWN0KG1lbW8pLnRvQmUoZXhwZWN0ZWQpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLElBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FB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
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _discount = _interopRequireDefault(require("./discount"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
class MercantileScraper extends _discount.default {
|
|
10
|
+
getLoginOptions(credentials) {
|
|
11
|
+
return {
|
|
12
|
+
...super.getLoginOptions(credentials),
|
|
13
|
+
loginUrl: 'https://start.telebank.co.il/login/?bank=m'
|
|
14
|
+
};
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
|
-
exports.default = MercantileScraper;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
var _default = exports.default = MercantileScraper;
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGlzY291bnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIk1lcmNhbnRpbGVTY3JhcGVyIiwiRGlzY291bnRTY3JhcGVyIiwiZ2V0TG9naW5PcHRpb25zIiwiY3JlZGVudGlhbHMiLCJsb2dpblVybCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tZXJjYW50aWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaXNjb3VudFNjcmFwZXIgZnJvbSAnLi9kaXNjb3VudCc7XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IGlkOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmc7IG51bTogc3RyaW5nIH07XG5jbGFzcyBNZXJjYW50aWxlU2NyYXBlciBleHRlbmRzIERpc2NvdW50U2NyYXBlciB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzKSxcbiAgICAgIGxvZ2luVXJsOiAnaHR0cHM6Ly9zdGFydC50ZWxlYmFuay5jby5pbC9sb2dpbi8/YmFuaz1tJyxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lcmNhbnRpbGVTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBeUMsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHekMsTUFBTUcsaUJBQWlCLFNBQVNDLGlCQUFlLENBQUM7RUFDOUNDLGVBQWVBLENBQUNDLFdBQXVDLEVBQUU7SUFDdkQsT0FBTztNQUNMLEdBQUcsS0FBSyxDQUFDRCxlQUFlLENBQUNDLFdBQVcsQ0FBQztNQUNyQ0MsUUFBUSxFQUFFO0lBQ1osQ0FBQztFQUNIO0FBQ0Y7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQVAsT0FBQSxHQUVjQyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _mercantile = _interopRequireDefault(require("./mercantile"));
|
|
4
|
+
var _testsUtils = require("../tests/tests-utils");
|
|
5
|
+
var _definitions = require("../definitions");
|
|
6
|
+
var _baseScraperWithBrowser = require("./base-scraper-with-browser");
|
|
7
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
const COMPANY_ID = 'mercantile'; // TODO this property should be hard-coded in the provider
|
|
9
|
+
const testsConfig = (0, _testsUtils.getTestsConfig)();
|
|
10
|
+
describe('Mercantile legacy scraper', () => {
|
|
11
|
+
beforeAll(() => {
|
|
12
|
+
(0, _testsUtils.extendAsyncTimeout)(); // The default timeout is 5 seconds per async test, this function extends the timeout value
|
|
13
|
+
});
|
|
14
|
+
test('should expose login fields in scrapers constant', () => {
|
|
15
|
+
expect(_definitions.SCRAPERS.mercantile).toBeDefined();
|
|
16
|
+
expect(_definitions.SCRAPERS.mercantile.loginFields).toContain('id');
|
|
17
|
+
expect(_definitions.SCRAPERS.mercantile.loginFields).toContain('password');
|
|
18
|
+
expect(_definitions.SCRAPERS.mercantile.loginFields).toContain('num');
|
|
19
|
+
});
|
|
20
|
+
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID, config => config.companyAPI.invalidPassword)('should fail on invalid user/password"', async () => {
|
|
21
|
+
const options = {
|
|
22
|
+
...testsConfig.options,
|
|
23
|
+
companyId: COMPANY_ID
|
|
24
|
+
};
|
|
25
|
+
const scraper = new _mercantile.default(options);
|
|
26
|
+
const result = await scraper.scrape(testsConfig.credentials.mercantile);
|
|
27
|
+
expect(result).toBeDefined();
|
|
28
|
+
expect(result.success).toBeFalsy();
|
|
29
|
+
expect(result.errorType).toBe(_baseScraperWithBrowser.LoginResults.InvalidPassword);
|
|
30
|
+
});
|
|
31
|
+
(0, _testsUtils.maybeTestCompanyAPI)(COMPANY_ID)('should scrape transactions"', async () => {
|
|
32
|
+
const options = {
|
|
33
|
+
...testsConfig.options,
|
|
34
|
+
companyId: COMPANY_ID
|
|
35
|
+
};
|
|
36
|
+
const scraper = new _mercantile.default(options);
|
|
37
|
+
const result = await scraper.scrape(testsConfig.credentials.mercantile);
|
|
38
|
+
expect(result).toBeDefined();
|
|
39
|
+
const error = `${result.errorType || ''} ${result.errorMessage || ''}`.trim();
|
|
40
|
+
expect(error).toBe('');
|
|
41
|
+
expect(result.success).toBeTruthy();
|
|
42
|
+
(0, _testsUtils.exportTransactions)(COMPANY_ID, result.accounts || []);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWVyY2FudGlsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Rlc3RzVXRpbHMiLCJfZGVmaW5pdGlvbnMiLCJfYmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkNPTVBBTllfSUQiLCJ0ZXN0c0NvbmZpZyIsImdldFRlc3RzQ29uZmlnIiwiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJleHRlbmRBc3luY1RpbWVvdXQiLCJ0ZXN0IiwiZXhwZWN0IiwiU0NSQVBFUlMiLCJtZXJjYW50aWxlIiwidG9CZURlZmluZWQiLCJsb2dpbkZpZWxkcyIsInRvQ29udGFpbiIsIm1heWJlVGVzdENvbXBhbnlBUEkiLCJjb25maWciLCJjb21wYW55QVBJIiwiaW52YWxpZFBhc3N3b3JkIiwib3B0aW9ucyIsImNvbXBhbnlJZCIsInNjcmFwZXIiLCJNZXJjYW50aWxlU2NyYXBlciIsInJlc3VsdCIsInNjcmFwZSIsImNyZWRlbnRpYWxzIiwic3VjY2VzcyIsInRvQmVGYWxzeSIsImVycm9yVHlwZSIsInRvQmUiLCJMb2dpblJlc3VsdHMiLCJJbnZhbGlkUGFzc3dvcmQiLCJlcnJvciIsImVycm9yTWVzc2FnZSIsInRyaW0iLCJ0b0JlVHJ1dGh5IiwiZXhwb3J0VHJhbnNhY3Rpb25zIiwiYWNjb3VudHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyYXBlcnMvbWVyY2FudGlsZS50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNZXJjYW50aWxlU2NyYXBlciBmcm9tICcuL21lcmNhbnRpbGUnO1xuaW1wb3J0IHsgbWF5YmVUZXN0Q29tcGFueUFQSSwgZXh0ZW5kQXN5bmNUaW1lb3V0LCBnZXRUZXN0c0NvbmZpZywgZXhwb3J0VHJhbnNhY3Rpb25zIH0gZnJvbSAnLi4vdGVzdHMvdGVzdHMtdXRpbHMnO1xuaW1wb3J0IHsgU0NSQVBFUlMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuXG5jb25zdCBDT01QQU5ZX0lEID0gJ21lcmNhbnRpbGUnOyAvLyBUT0RPIHRoaXMgcHJvcGVydHkgc2hvdWxkIGJlIGhhcmQtY29kZWQgaW4gdGhlIHByb3ZpZGVyXG5jb25zdCB0ZXN0c0NvbmZpZyA9IGdldFRlc3RzQ29uZmlnKCk7XG5cbmRlc2NyaWJlKCdNZXJjYW50aWxlIGxlZ2FjeSBzY3JhcGVyJywgKCkgPT4ge1xuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIGV4dGVuZEFzeW5jVGltZW91dCgpOyAvLyBUaGUgZGVmYXVsdCB0aW1lb3V0IGlzIDUgc2Vjb25kcyBwZXIgYXN5bmMgdGVzdCwgdGhpcyBmdW5jdGlvbiBleHRlbmRzIHRoZSB0aW1lb3V0IHZhbHVlXG4gIH0pO1xuXG4gIHRlc3QoJ3Nob3VsZCBleHBvc2UgbG9naW4gZmllbGRzIGluIHNjcmFwZXJzIGNvbnN0YW50JywgKCkgPT4ge1xuICAgIGV4cGVjdChTQ1JBUEVSUy5tZXJjYW50aWxlKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChTQ1JBUEVSUy5tZXJjYW50aWxlLmxvZ2luRmllbGRzKS50b0NvbnRhaW4oJ2lkJyk7XG4gICAgZXhwZWN0KFNDUkFQRVJTLm1lcmNhbnRpbGUubG9naW5GaWVsZHMpLnRvQ29udGFpbigncGFzc3dvcmQnKTtcbiAgICBleHBlY3QoU0NSQVBFUlMubWVyY2FudGlsZS5sb2dpbkZpZWxkcykudG9Db250YWluKCdudW0nKTtcbiAgfSk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDT01QQU5ZX0lELCBjb25maWcgPT4gY29uZmlnLmNvbXBhbnlBUEkuaW52YWxpZFBhc3N3b3JkKShcbiAgICAnc2hvdWxkIGZhaWwgb24gaW52YWxpZCB1c2VyL3Bhc3N3b3JkXCInLFxuICAgIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRlc3RzQ29uZmlnLm9wdGlvbnMsXG4gICAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNjcmFwZXIgPSBuZXcgTWVyY2FudGlsZVNjcmFwZXIob3B0aW9ucyk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNjcmFwZXIuc2NyYXBlKHRlc3RzQ29uZmlnLmNyZWRlbnRpYWxzLm1lcmNhbnRpbGUpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlRmFsc3koKTtcbiAgICAgIGV4cGVjdChyZXN1bHQuZXJyb3JUeXBlKS50b0JlKExvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmQpO1xuICAgIH0sXG4gICk7XG5cbiAgbWF5YmVUZXN0Q29tcGFueUFQSShDT01QQU5ZX0lEKSgnc2hvdWxkIHNjcmFwZSB0cmFuc2FjdGlvbnNcIicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgLi4udGVzdHNDb25maWcub3B0aW9ucyxcbiAgICAgIGNvbXBhbnlJZDogQ09NUEFOWV9JRCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyYXBlciA9IG5ldyBNZXJjYW50aWxlU2NyYXBlcihvcHRpb25zKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzY3JhcGVyLnNjcmFwZSh0ZXN0c0NvbmZpZy5jcmVkZW50aWFscy5tZXJjYW50aWxlKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0JlRGVmaW5lZCgpO1xuICAgIGNvbnN0IGVycm9yID0gYCR7cmVzdWx0LmVycm9yVHlwZSB8fCAnJ30gJHtyZXN1bHQuZXJyb3JNZXNzYWdlIHx8ICcnfWAudHJpbSgpO1xuICAgIGV4cGVjdChlcnJvcikudG9CZSgnJyk7XG4gICAgZXhwZWN0KHJlc3VsdC5zdWNjZXNzKS50b0JlVHJ1dGh5KCk7XG5cbiAgICBleHBvcnRUcmFuc2FjdGlvbnMoQ09NUEFOWV9JRCwgcmVzdWx0LmFjY291bnRzIHx8IFtdKTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyx1QkFBQSxHQUFBSCxPQUFBO0FBQTJELFNBQUFELHVCQUFBSyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTNELE1BQU1HLFVBQVUsR0FBRyxZQUFZLENBQUMsQ0FBQztBQUNqQyxNQUFNQyxXQUFXLEdBQUcsSUFBQUMsMEJBQWMsRUFBQyxDQUFDO0FBRXBDQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsTUFBTTtFQUMxQ0MsU0FBUyxDQUFDLE1BQU07SUFDZCxJQUFBQyw4QkFBa0IsRUFBQyxDQUFDLENBQUMsQ0FBQztFQUN4QixDQUFDLENBQUM7RUFFRkMsSUFBSSxDQUFDLGlEQUFpRCxFQUFFLE1BQU07SUFDNURDLE1BQU0sQ0FBQ0MscUJBQVEsQ0FBQ0MsVUFBVSxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDSCxNQUFNLENBQUNDLHFCQUFRLENBQUNDLFVBQVUsQ0FBQ0UsV0FBVyxDQUFDLENBQUNDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDdkRMLE1BQU0sQ0FBQ0MscUJBQVEsQ0FBQ0MsVUFBVSxDQUFDRSxXQUFXLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUM3REwsTUFBTSxDQUFDQyxxQkFBUSxDQUFDQyxVQUFVLENBQUNFLFdBQVcsQ0FBQyxDQUFDQyxTQUFTLENBQUMsS0FBSyxDQUFDO0VBQzFELENBQUMsQ0FBQztFQUVGLElBQUFDLCtCQUFtQixFQUFDYixVQUFVLEVBQUVjLE1BQU0sSUFBSUEsTUFBTSxDQUFDQyxVQUFVLENBQUNDLGVBQWUsQ0FBQyxDQUMxRSx1Q0FBdUMsRUFDdkMsWUFBWTtJQUNWLE1BQU1DLE9BQU8sR0FBRztNQUNkLEdBQUdoQixXQUFXLENBQUNnQixPQUFPO01BQ3RCQyxTQUFTLEVBQUVsQjtJQUNiLENBQUM7SUFFRCxNQUFNbUIsT0FBTyxHQUFHLElBQUlDLG1CQUFpQixDQUFDSCxPQUFPLENBQUM7SUFFOUMsTUFBTUksTUFBTSxHQUFHLE1BQU1GLE9BQU8sQ0FBQ0csTUFBTSxDQUFDckIsV0FBVyxDQUFDc0IsV0FBVyxDQUFDZCxVQUFVLENBQUM7SUFFdkVGLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDLENBQUNYLFdBQVcsQ0FBQyxDQUFDO0lBQzVCSCxNQUFNLENBQUNjLE1BQU0sQ0FBQ0csT0FBTyxDQUFDLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDbEIsTUFBTSxDQUFDYyxNQUFNLENBQUNLLFNBQVMsQ0FBQyxDQUFDQyxJQUFJLENBQUNDLG9DQUFZLENBQUNDLGVBQWUsQ0FBQztFQUM3RCxDQUNGLENBQUM7RUFFRCxJQUFBaEIsK0JBQW1CLEVBQUNiLFVBQVUsQ0FBQyxDQUFDLDZCQUE2QixFQUFFLFlBQVk7SUFDekUsTUFBTWlCLE9BQU8sR0FBRztNQUNkLEdBQUdoQixXQUFXLENBQUNnQixPQUFPO01BQ3RCQyxTQUFTLEVBQUVsQjtJQUNiLENBQUM7SUFFRCxNQUFNbUIsT0FBTyxHQUFHLElBQUlDLG1CQUFpQixDQUFDSCxPQUFPLENBQUM7SUFDOUMsTUFBTUksTUFBTSxHQUFHLE1BQU1GLE9BQU8sQ0FBQ0csTUFBTSxDQUFDckIsV0FBVyxDQUFDc0IsV0FBVyxDQUFDZCxVQUFVLENBQUM7SUFDdkVGLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDLENBQUNYLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLE1BQU1vQixLQUFLLEdBQUcsR0FBR1QsTUFBTSxDQUFDSyxTQUFTLElBQUksRUFBRSxJQUFJTCxNQUFNLENBQUNVLFlBQVksSUFBSSxFQUFFLEVBQUUsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7SUFDN0V6QixNQUFNLENBQUN1QixLQUFLLENBQUMsQ0FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUN0QnBCLE1BQU0sQ0FBQ2MsTUFBTSxDQUFDRyxPQUFPLENBQUMsQ0FBQ1MsVUFBVSxDQUFDLENBQUM7SUFFbkMsSUFBQUMsOEJBQWtCLEVBQUNsQyxVQUFVLEVBQUVxQixNQUFNLENBQUNjLFFBQVEsSUFBSSxFQUFFLENBQUM7RUFDdkQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|