UNPKG

n26-puppeteer-scraper

Version:

n26 scraper: a tool to download account informations and transactions archive

52 lines (46 loc) 1.88 kB
const test = require('ava') const debug = require('debug') const n26login = require('./lib/n26-login') const n26readTransactions = require('./lib/n26-read-transactions') const n26downloadTransactionsArchive = require('./lib/n26-download-transactions-archive') const username = process.env.npm_config_n26_username const password = process.env.npm_config_n26_password debug.enable('n26:*') let page test.after(async () => { page && await page.close() }) test('logs in', async t => { const { page: p, membership } = await n26login({ username, password }) page = p t.truthy(membership) console.log(membership) t.is(typeof membership.name, 'string') t.is(typeof membership.iban, 'string') t.is(typeof membership.bic, 'string') t.is(typeof membership.accountType, 'string') t.is(typeof membership.atmWithdrawals, 'string') t.is(typeof membership.markup, 'string') t.is(typeof membership.worldwide, 'boolean') }) test('scrapes transactions', async t => { const { page: p } = await n26login({ username, password }, { page, loadMembership: false }) page = p const txs = await n26readTransactions(page, { untilPage: 3 }) console.log(txs.length) t.true(Array.isArray(txs)) t.true(txs.length > 100) t.true(txs.every(t => t.title && t.dateString && t.amountString)) }) test('downloads transactions archive', async t => { const { page: p } = await n26login({ username, password }, { page, loadMembership: false }) page = p const result = await n26downloadTransactionsArchive(page, { startDate: '2018-06-15', endDate: new Date().toISOString().substring(0, 10) }) console.log(result) t.is(typeof result.csrfToken, 'string') t.is(typeof result.downloadLink, 'string') t.is(typeof result.cookies, 'string') t.is(typeof result.archive, 'object') const res = result.archive.toString('utf8') console.log('res', res.substring(0, 1000)) })