import "reflect-metadata";
import { describe, expect, it } from '@jest/globals';
import { PageRequest } from './pagination.entity';

describe('PageRequest', () => {
  it('passing default number parameters', () => {
    const pageRequest = new PageRequest(
      0,
      20,
<%_ if (typeormOrderSupport) { _%>
      'id,ASC',
<%_ } _%>
    );
    expect(pageRequest.page).toBe(0);
    expect(pageRequest.size).toBe(20);
<%_ if (typeormOrderSupport) { _%>
    expect(pageRequest.sort.asOrder()).toMatchObject({ id: 'ASC' });
<%_ } _%>
  });

  it('passing default strings parameters', () => {
    const pageRequest = new PageRequest(
      '0',
      '20',
<%_ if (typeormOrderSupport) { _%>
      'id,ASC',
<%_ } _%>
    );
    expect(pageRequest.page).toBe(0);
    expect(pageRequest.size).toBe(20);
<%_ if (typeormOrderSupport) { _%>
    expect(pageRequest.sort.asOrder()).toMatchObject({ id: 'ASC' });
<%_ } _%>
  });

  it('passing non default strings parameters', () => {
    const pageRequest = new PageRequest(
      '10',
      '30',
<%_ if (typeormOrderSupport) { _%>
      'foo,DESC',
<%_ } _%>
    );
    expect(pageRequest.page).toBe(10);
    expect(pageRequest.size).toBe(30);
<%_ if (typeormOrderSupport) { _%>
    expect(pageRequest.sort.asOrder()).toMatchObject({ foo: 'DESC' });
<%_ } _%>
  });
});
