import fs from 'fs';
import path from 'path';
import AutoloadImagesExtension from '../lib/autoload-images-extension';
import AutoloadImagesStore from '../lib/autoload-images-store';

describe('AutoloadImagesExtension', function autoloadImagesExtension() {
  describe("formatMessageBody", () => {
    const scenarios = [];
    const fixtures = path.resolve(path.join(__dirname, 'fixtures'));

    fs.readdirSync(fixtures).forEach((filename) => {
      if (filename.endsWith('-in.html')) {
        const name = filename.replace('-in.html', '');

        scenarios.push({
          'name': name,
          'in': fs.readFileSync(path.join(fixtures, filename)).toString(),
          'out': fs.readFileSync(path.join(fixtures, `${name}-out.html`)).toString(),
        });
      }
    });

    scenarios.forEach((scenario) => {
      it(`should process ${scenario.name}`, () => {
        spyOn(AutoloadImagesStore, 'shouldBlockImagesIn').andReturn(true);

        const message = {
          body: scenario.in,
        };
        AutoloadImagesExtension.formatMessageBody({message});

        expect(message.body === scenario.out).toBe(true);
      });
    });
  });
});
