import MockAdapter from 'axios-mock-adapter/types'; const USER = { id: 10001 }; const FORM = { id: 1, children: 1, valuation: 3000000, valuationCurrency: 'SEK', amount: 2300000, amountCurrency: 'SEK', livingCost: 4000, livingCostCurrency: 'SEK', email: 'demo@bofink.se', phoneNumber: '0701234567', userId: USER.id, }; const TINK_LOANS = [ { id: 1, monthsBound: 1, name: 'Bolån', interest: 0.019, amount: 2300000, termsChangeDate: null, tinkProviderName: 'demo', type: 'MORTGAGE', monthlyCost: 3641.6666666666665, loanNumber: '123 456 789-0', monthlyAmortization: null, userId: USER.id, formId: FORM.id, }, { id: 2, monthsBound: 1, name: 'Blancolån', interest: 0.039, amount: 130000, termsChangeDate: null, tinkProviderName: 'demo', type: 'BLANCO', monthlyCost: 422.5, loanNumber: '987 654 321-1', monthlyAmortization: null, userId: USER.id, formId: null, }, ]; const ADDRESS = { id: 1, street1: null, street2: 'Storgatan 10', apartmentNumber: null, careOf: null, postalNumber: '11146', city: 'STOCKHOLM', formId: FORM.id, userId: USER.id, }; const PERSONS = [ { id: 1, firstName: 'Christina', middleName: null, lastName: 'Andersson', gender: 'F', birthDate: '1937-01-30T00:00:00.000Z', ssn: '197001010101', incomeCurrency: 'SEK', otherIncomeCurrency: 'SEK', assetsCurrency: 'SEK', mainApplicant: true, applicant: true, userId: USER.id, formId: FORM.id, addressId: ADDRESS.id, }, ]; const TINK_ACCOUNTS = [ { id: 1, accountNumber: '9999-111111111111', tinkId: '67cebd01652e4a0fa59d720c3b456c8e', name: 'Transaktionskonto', type: 'CHECKING', balance: 26245.33, currency: null, tinkUserId: '7aed8214d1bb4668a60ac6ca613f093f', tinkCredentialId: '130998b26aaf45ab837b68a41d18a7f1', userId: USER.id, }, { id: 2, accountNumber: '9999-222222222222', tinkId: '40ac986e53fd4477b48b0d3f89355d2d', name: 'Sparkonto', type: 'SAVINGS', balance: 385245.33, currency: null, tinkUserId: '7aed8214d1bb4668a60ac6ca613f093f', tinkCredentialId: '130998b26aaf45ab837b68a41d18a7f1', userId: USER.id, }, ]; const BANKS = [ { id: 1, name: 'avanza', displayName: 'Avanza', tinkProviderId: 'avanza', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/avanza.png', enabled: true, color: '#03C281', market: 'SE', }, { id: 2, name: 'collector', displayName: 'Collector', tinkProviderId: 'collector', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/collector.png', enabled: true, color: '#231F20', market: 'SE', }, { id: 3, name: 'danskebank', displayName: 'Danske Bank', tinkProviderId: 'danskebank', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/danske-bank.png', enabled: true, color: '#013356', market: 'SE', }, { id: 4, name: 'handelsbanken', displayName: 'Handelsbanken', tinkProviderId: 'handelsbanken', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/handelsbanken.png', enabled: true, color: '#003399', market: 'SE', }, { id: 5, name: 'icabanken', displayName: 'Ica banken', tinkProviderId: 'icabanken', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/ica-banken.png', enabled: true, color: '#E52015', market: 'SE', }, { id: 6, name: 'lansforsakringar', displayName: 'Lansforsakringar', tinkProviderId: 'lansforsakringar', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/lansforsakringar.png', enabled: true, color: '#005AA0', market: 'SE', }, { id: 7, name: 'nordea', displayName: 'Nordea', tinkProviderId: 'nordea', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/nordea.png', enabled: true, color: '#09009F', market: 'SE', }, { id: 8, name: 'nordnet', displayName: 'Nordnet', tinkProviderId: 'nordnet', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/nordnet.png', enabled: true, color: '#1D1D1B', market: 'SE', }, { id: 9, name: 'sbab', displayName: 'Sbab', tinkProviderId: 'sbab', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/sbab.png', enabled: true, color: '#FF4B11', market: 'SE', }, { id: 10, name: 'seb', displayName: 'Seb', tinkProviderId: 'seb', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/seb.png', enabled: true, color: '#000000', market: 'SE', }, { id: 11, name: 'skandiabanken', displayName: 'Skandia banken', tinkProviderId: 'skandiabanken', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/skandia-banken.png', enabled: true, color: '#017F64', market: 'SE', }, { id: 12, name: 'sparbankensyd', displayName: 'Sparbanken syd', tinkProviderId: 'sparbankensyd', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/sparbanken-syd.png', enabled: true, color: '#FFDF00', market: 'SE', }, { id: 13, name: 'sparbankerna', displayName: 'Sparbankerna', tinkProviderId: 'sparbankerna', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/sparbankerna.png', enabled: true, color: '#F68D20', market: 'SE', }, { id: 14, name: 'swedbank', displayName: 'Swedbank', tinkProviderId: 'swedbank', logoUrl: 'https://storage.googleapis.com/bofink/images/banks/swedbank.png', enabled: true, color: '#F68D20', market: 'SE', }, ]; const EMPLOYMENT_TYPES = [ { id: 'PERMANENT' }, { id: 'PROBATIONARY' }, { id: 'SELF_EMPLOYED' }, { id: 'UNEMPLOYED' }, { id: 'STUDENT' }, { id: 'PENSIONER' }, { id: 'HOURLY' }, { id: 'TEMPORARY' }, ]; const CREDIT_TYPES = [ { id: 'UNSECURED' }, { id: 'MORTGAGE' }, { id: 'STUDENT' }, { id: 'CREDIT' }, ]; const KYC_PURPOSES = [{ id: 'MORTGAGE' }]; const KYC_SOURCES = [{ id: 'SALARY' }]; export function primeMock(mock: MockAdapter) { // USERS mock.onGet('/users/me').reply(200, { id: USER.id }); mock .onPost('/users/login/anonymous') .reply(200, { token: 'randomjwttokenellervadgörjag?' }); // FORM mock.onPatch(/\/forms\/\d+/).reply(204); // FORM ADDRESS mock.onGet(/\/forms\/\d+\/address/).reply(204, ADDRESS); // USER TINK-LOANS mock.onGet(/\/forms\/\d+\/tink-loans/).reply(200, TINK_LOANS); mock.onPatch(/\/forms\/\d+\/tink-loans/).reply(200); // PERSONS mock.onPatch(/\/persons\/\d+/).reply(204); // USER FORMS mock.onGet('/users/me/forms').reply(200, [{ id: FORM.id }]); mock.onGet(/\/users\/\d+\/forms/).reply(200, [FORM]); mock .onPost('/users/me/forms/init') .reply(200, { id: FORM.id, userId: USER.id }); // USER TINK-LOANS mock.onGet(/\/users\/\d+\/tink-loans/).reply(200, TINK_LOANS); mock.onPatch(/\/users\/\d+\/tink-loans/).reply(200); // USER LOAN-PARTS mock.onPost(/\/users\/\d+\/loan-parts/).reply(200, {}); // USER PERSONS mock.onGet(/\/users\/\d+\/persons/).reply(200, PERSONS); mock.onPatch(/\/users\/\d+\/persons/).reply(204); mock.onPost(/\/users\/\d+\/persons/).reply(200, {}); // USERS TINK-ACCOUNTS mock.onGet(/\/users\/\d+\/tink-accounts/).reply(200, TINK_ACCOUNTS); // USER CREDITS mock.onPost(/\/users\/\d+\/credits/).reply(200, {}); // USER KYCS mock.onPost(/\/users\/\d+\/kycs/).reply(200, {}); // TINK mock.onGet('/tink/link').reply(200, { href: 'http://localhost:3500/mortgage-application-mock/tink/link/authorize?client_id=16155394f66c402e909953a65976ad55&redirect_uri=http%3A%2F%2Flocalhost%3A6007%2Fcallback&scope=accounts%3Aread%2Ccredentials%3Aread%2Cinvestments%3Aread%2Cstatistics%3Aread%2Cuser%3Aread&locale=sv_SE&market=SE&input_provider=danskebank-bankid&input_username=201212121212&iframe=true', }); mock.onPost('/tink/login').reply(200, { user: { id: USER.id }, token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMDAwMiIsInBvbGljeSI6IndlYiIsImlhdCI6MTU3MTgxNTM3NSwiZXhwIjoxNTcxODIxMzc1fQ.rD18CgbBHWiU4h9xPvYhJvPvmGHFUxjJsob-vfNDEt0', }); // BANKS mock.onGet('/banks').reply(200, BANKS); // EMPLOYMENT-TYPES mock.onGet('/employment-types').reply(200, EMPLOYMENT_TYPES); // CREDIT-TYPES mock.onGet('/credit-types').reply(200, CREDIT_TYPES); // KYC-PURPOSES mock.onGet('/kyc-purposes').reply(200, KYC_PURPOSES); // KYC-SOURCES mock.onGet('/kyc-sources').reply(200, KYC_SOURCES); }