import { ParsingError } from '../../src/errors/parsing_error';

describe('ParsingError', () => {
  it('Should put constructor params as public properties', () => {
    const input = {
      message: 'msg',
      parsingType: 'instruction' as any,
      parsingLineNumber: 1,
      parsingLineContent: 'line',
      parsedValue: 'value',
    };
    const error = new ParsingError(
      input.message,
      input.parsingType,
      input.parsingLineNumber,
      input.parsingLineContent,
      input.parsedValue
    );
    expect(error.message).toBe(input.message);
    expect(error.parsingType).toBe(input.parsingType);
    expect(error.parsingLineNumber).toBe(input.parsingLineNumber);
    expect(error.parsingLineContent).toBe(input.parsingLineContent);
    expect(error.parsedValue).toBe(input.parsedValue);
  });

  it('Should have optional params', () => {
    const error = new ParsingError('message', '');
    expect(error.parsingType).toBe('');
    expect(error.parsingLineNumber).toBe(1);
    expect(error.parsingLineContent).toBe('');
    expect(error.parsedValue).toBeUndefined();
  });
});
