import {
  LiquidUserMESchema,
  LiquidUserSearchHomeSchema,
  DelegateSchema
} from '@commerce-liquid-schema/index';

describe('Liquid APP Schema Validation Tests', () => {
  it('C4933579: Validate Delegate Schema Test', { tags: ['@tier1'] }, () => {
    cy.callLiquidAPI('liquidDelegate').then((response) => {
      cy.log(JSON.stringify(response));
      cy.log('Body type', response);
      cy.validateSchema(DelegateSchema, response).then((valid) => {
        cy.log('validation result', valid);
        expect(valid).eq(true, 'Validate if Schema is Valid?');
      });
    });
  });

  it('C4933577: Validate Liquid ME Schema Test', { tags: ['@tier1'] }, () => {
    cy.callLiquidAPI('liquidUserMe').then((response) => {
      cy.log(JSON.stringify(response));
      cy.log('Body type', response);
      cy.validateSchema(LiquidUserMESchema, response).then((valid) => {
        cy.log('validation result', valid);
        expect(valid).eq(true, 'Validate if Schema is Valid?');
      });
    });
  });

  it('C4933578: Validate Liquid HOME Endpoint Schema Test', { tags: ['@tier1'] }, () => {
    cy.callLiquidAPI('liquidUserSearchHome').then((response) => {
      cy.log(JSON.stringify(response));
      cy.log('Body type', response);
      cy.validateSchema(LiquidUserSearchHomeSchema, response).then((valid) => {
        cy.log('validation result', valid);
        expect(valid).eq(true, 'Validate if Schema is Valid?');
      });
    });
  });
});
