import React from 'react'; import ReactTestRenderer from 'react-test-renderer'; import configureStore from 'redux-mock-store'; import { Provider } from 'react-redux'; import { BunkerAdjustmentMonthlyPage } from './BunkerAdjustmentMonthly.page'; jest.mock('app/modules/bunkerAdjustment/store/bunkerAdjustment.selectors', () => ({ selectCurrentPeriod: jest.fn(() => 'June 2021'), selectCurrentPeriodName: jest.fn(() => 'June 2021'), })); jest.mock('app/modules/bunkerAdjustment/store/bunkerConsumptionCalculations.selectors', () => ({ selectBunkerAdjustmentConsumptionCalculations: jest.fn(() => ([ { type: 'laden', days: 13, daysPercentage: 13, reported: 13, virtual: 13, difference: 13, }, { type: 'ballasted', days: 7, daysPercentage: 7, reported: 7, virtual: 7, difference: 7, }, { type: 'loading', days: 321, daysPercentage: 321, reported: 321, virtual: 321, difference: 321, }, { type: 'discharging', days: 67, daysPercentage: 67, reported: 67, virtual: 67, difference: 67, }, { type: 'total', days: 3, daysPercentage: 3, reported: 3, virtual: 3, difference: 3, }, ])), })); jest.mock('app/modules/bunkerAdjustment/store/bunkerAdjustmentKeyFigures.selectors', () => ({ selectBunkerConsumptionFigures: jest.fn(() => ({ header: 'Bunker Consumption', figures: [ { value: 13, unit: 'mt/day', isMoney: false, description: 'vessel name', }, { value: 7, unit: 'mt/day', isMoney: false, description: 'Virtual Pool Vessel', }, ], })), selectBunkerPricesFigures: jest.fn(() => ({ header: 'Bunker Prices', hint: 'hint message', figures: [ { value: 13, unit: '/mt', isMoney: true, description: 'Compliant', }, { value: 7, unit: '/mt', isMoney: true, description: 'Non-compliant', }, ], })), selectTotalBunkerAdjustmentFigures: jest.fn(() => ({ header: `Total Bunker adjustment`, hint: 'hint message', figures: [ { value: 13, isMoney: true, description: 'Bunker adjustment', }, { value: 7, isMoney: true, description: 'Scrubber Bonus', }, ], })), })); jest.mock('app/modules/bunkerAdjustment/store/bunkerAdjustmentCalculations.selectors', () => ({ selectBACurrentMonthCalculations: jest.fn(() => ({ steps: [ { key: `Bunker basket price for June 2021`, value: 13, isMoney: true, }, { key: `Total difference between vessel name and Virtual Pool Vessel`, value: 7, isMoney: false, operation: 'x', }, ], result: { key: `Bunker adjustment for June 2021`, value: 321, isLarge: true, }, })), selectBATotalPerDayCalculations: jest.fn(() => ({ steps: [ { key: `Total Bunker Adjustment for June 2021`, value: 13, isMoney: true, }, { key: `On-hire days in June 2021`, value: 7, isMoney: false, operation: '/', }, ], result: { key: 'Total Bunker Adjustment for June 2021 per day', value: 11, isLarge: true, }, })), selectBACurrentMonthPerDayCalculations: jest.fn(() => ({ steps: [ { key: 'Bunker Adjustment for June 2021', value: 13, isMoney: true, }, { key: `On-hire days in June 2021`, value: 7, isMoney: false, operation: '/', }, ], result: { key: 'Bunker Adjustment per day', value: 67, isLarge: true, }, })), selectBAPreviousPeriodsPerDayCalculations: jest.fn(() => ({ steps: [ { key: 'Previous period adjustment', value: 13, isMoney: true, }, { key: `On-hire days in June 2021`, value: 7, isMoney: false, operation: '/', }, ], result: { key: 'Previous period adjustment per day', value: 67, isLarge: true, }, })), selectBATotalCalculations: jest.fn(() => ({ steps: [ { key: 'Bunker Adjustment for June 2021', value: 13, isMoney: true, }, { key: 'Previous period adjustment', value: 7, isMoney: true, operation: '+', }, ], result: { key: `Total bunker adjustment for June 2021`, value: 8, isLarge: true, }, })), })); jest.mock('app/modules/bunkerAdjustment/store/bunkerAdjustmentScrubberCalculations.selectors', () => ({ selectBATotalScrubberCalculations: jest.fn(() => ({ steps: [ { key: `Bonus for June 2021`, value: 13, isMoney: true, }, { key: `Previous period adjustment`, value: 7, isMoney: true, operation: 'x', }, ], result: { key: `Total Scrubber Bonus for June 2021`, value: 321, isLarge: true, }, })), selectBABasketsDifferenceCalculations: jest.fn(() => ({ steps: [ { key: `Compliant Bunker Basket`, value: 13, isMoney: true, }, { key: `Scrubber Bunker Basket`, value: 7, isMoney: true, operation: '/', }, ], result: { key: 'Difference', value: 11, isLarge: true, }, })), selectBAScrubberConsumptionCalculations: jest.fn(() => ({ steps: [ { key: 'Total Consumption', value: 13, isMoney: true, }, ], result: { key: 'Bonus for June 2021', value: 67, isLarge: false, }, })), selectBAScrubberBonusPerDayCalculations: jest.fn(() => ({ steps: [ { key: 'On-hire scrubber days in June 2021', value: 13, isMoney: true, }, ], result: { key: 'Vessel Scrubber Bonus per day', value: 67, isLarge: true, }, })), })); jest.mock('app/modules/vesselDetails/root/store/vesselDetails.selectors', () => ({ selectVesselName: jest.fn(() => 'vessel name'), })); describe('VesselEarnings details bunker adjustment page tests', () => { const mockStore = configureStore(); const store = mockStore({}); it('renders page correctly', () => { const tree = ReactTestRenderer .create( ) .toJSON(); expect(tree).toMatchSnapshot(); }); });