"use strict";

var _interfaces = require("./interfaces");

/* eslint-disable max-nested-callbacks */
describe('interfaces', () => {
  test('should not include implementations', () => {
    const instances = [new _interfaces.CommerceConnector(), new _interfaces.ParserHooks()];
    instances.forEach(instance => {
      const methods = Object.getOwnPropertyNames(Object.getPrototypeOf(instance)).filter(x => x !== 'constructor');
      methods.forEach(methodName => {
        expect(() => instance[methodName]()).toThrow(new Error('Not implemented'));
      });
    });
  });
});