import calculationPages from '../../src/utils/calculationPages'
import drones from '../mock/drones'

describe('CalculationPages', () => {
  it('should calculate the total number of pages and maximum number of pages', () => {
    const allItems = drones == null || drones == undefined ? 0 : drones.length

    expect(calculationPages(allItems, 5)).toStrictEqual({
      allPages: 3,
      maxPages: 2,
    })
  })

  it('should return zero pages when there are no items', () => {
    expect(calculationPages(0, 5)).toStrictEqual({
      allPages: 0,
      maxPages: 0,
    })
  })

  it('should return one page when items fit in a single page', () => {
    expect(calculationPages(3, 10)).toStrictEqual({
      allPages: 1,
      maxPages: 0,
    })
  })

  it('should calculate exact division without remainder', () => {
    expect(calculationPages(12, 4)).toStrictEqual({
      allPages: 3,
      maxPages: 3,
    })
  })

  it('should round maxPages and ceil allPages when division is not exact', () => {
    expect(calculationPages(11, 4)).toStrictEqual({
      allPages: 3,
      maxPages: 3,
    })
  })

  it('should handle pageSize equal to 1', () => {
    expect(calculationPages(5, 1)).toStrictEqual({
      allPages: 5,
      maxPages: 5,
    })
  })
})
