const { createFFmpeg } = FFmpeg;
const ffmpeg = createFFmpeg(OPTIONS);

before(async function cb() {
  this.timeout(0);
  await ffmpeg.load();
});

describe('transcode()', () => {
  describe('should transcode different format', () => {
    [1, 2, 4].forEach((n) => {
      [
        { from: 'flame.avi', to: 'flame.mp4' },
        { from: 'flame.avi', to: 'flame.webm' },
        { from: 'StarWars3.wav', to: 'StarWars3.mp3' },
      ].forEach(({ from, to }) => (
        it(`transcode ${from} to ${to} (${n} threads)`, async () => {
          await ffmpeg.write(from, `${BASE_URL}/${from}`);
          await ffmpeg.transcode(from, to, `-threads ${n}`);
          const data = ffmpeg.read(to);
          ffmpeg.remove(to);
          expect(data.length).not.to.be(0);
        }).timeout(TIMEOUT)
      ));
    });
  });
});
