From 848f8ed21e6556641944caebde425f2ee0bb76e8 Mon Sep 17 00:00:00 2001 From: Jerome Wu Date: Tue, 3 Nov 2020 15:37:45 +0800 Subject: [PATCH] Refactor tests --- {tests => examples}/assets/StarWars3.wav | Bin {tests => examples}/assets/flame.avi | Bin {tests => examples}/assets/triangle/audio.ogg | Bin .../assets/triangle/tmp.000.png | Bin .../assets/triangle/tmp.001.png | Bin .../assets/triangle/tmp.002.png | Bin .../assets/triangle/tmp.003.png | Bin .../assets/triangle/tmp.004.png | Bin .../assets/triangle/tmp.005.png | Bin .../assets/triangle/tmp.006.png | Bin .../assets/triangle/tmp.007.png | Bin .../assets/triangle/tmp.008.png | Bin .../assets/triangle/tmp.009.png | Bin .../assets/triangle/tmp.010.png | Bin .../assets/triangle/tmp.011.png | Bin .../assets/triangle/tmp.012.png | Bin .../assets/triangle/tmp.013.png | Bin .../assets/triangle/tmp.014.png | Bin .../assets/triangle/tmp.015.png | Bin .../assets/triangle/tmp.016.png | Bin .../assets/triangle/tmp.017.png | Bin .../assets/triangle/tmp.018.png | Bin .../assets/triangle/tmp.019.png | Bin .../assets/triangle/tmp.020.png | Bin .../assets/triangle/tmp.021.png | Bin .../assets/triangle/tmp.022.png | Bin .../assets/triangle/tmp.023.png | Bin .../assets/triangle/tmp.024.png | Bin .../assets/triangle/tmp.025.png | Bin .../assets/triangle/tmp.026.png | Bin .../assets/triangle/tmp.027.png | Bin .../assets/triangle/tmp.028.png | Bin .../assets/triangle/tmp.029.png | Bin .../assets/triangle/tmp.030.png | Bin .../assets/triangle/tmp.031.png | Bin .../assets/triangle/tmp.032.png | Bin .../assets/triangle/tmp.033.png | Bin .../assets/triangle/tmp.034.png | Bin .../assets/triangle/tmp.035.png | Bin .../assets/triangle/tmp.036.png | Bin .../assets/triangle/tmp.037.png | Bin .../assets/triangle/tmp.038.png | Bin .../assets/triangle/tmp.039.png | Bin .../assets/triangle/tmp.040.png | Bin .../assets/triangle/tmp.041.png | Bin .../assets/triangle/tmp.042.png | Bin .../assets/triangle/tmp.043.png | Bin .../assets/triangle/tmp.044.png | Bin .../assets/triangle/tmp.045.png | Bin .../assets/triangle/tmp.046.png | Bin .../assets/triangle/tmp.047.png | Bin .../assets/triangle/tmp.048.png | Bin .../assets/triangle/tmp.049.png | Bin .../assets/triangle/tmp.050.png | Bin .../assets/triangle/tmp.051.png | Bin .../assets/triangle/tmp.052.png | Bin .../assets/triangle/tmp.053.png | Bin .../assets/triangle/tmp.054.png | Bin .../assets/triangle/tmp.055.png | Bin .../assets/triangle/tmp.056.png | Bin .../assets/triangle/tmp.057.png | Bin .../assets/triangle/tmp.058.png | Bin .../assets/triangle/tmp.059.png | Bin tests/constants.js | 4 +- tests/ffmpeg.test.html | 3 +- tests/ffmpeg.test.js | 98 +++++++++--------- 66 files changed, 51 insertions(+), 54 deletions(-) rename {tests => examples}/assets/StarWars3.wav (100%) rename {tests => examples}/assets/flame.avi (100%) rename {tests => examples}/assets/triangle/audio.ogg (100%) rename {tests => examples}/assets/triangle/tmp.000.png (100%) rename {tests => examples}/assets/triangle/tmp.001.png (100%) rename {tests => examples}/assets/triangle/tmp.002.png (100%) rename {tests => examples}/assets/triangle/tmp.003.png (100%) rename {tests => examples}/assets/triangle/tmp.004.png (100%) rename {tests => examples}/assets/triangle/tmp.005.png (100%) rename {tests => examples}/assets/triangle/tmp.006.png (100%) rename {tests => examples}/assets/triangle/tmp.007.png (100%) rename {tests => examples}/assets/triangle/tmp.008.png (100%) rename {tests => examples}/assets/triangle/tmp.009.png (100%) rename {tests => examples}/assets/triangle/tmp.010.png (100%) rename {tests => examples}/assets/triangle/tmp.011.png (100%) rename {tests => examples}/assets/triangle/tmp.012.png (100%) rename {tests => examples}/assets/triangle/tmp.013.png (100%) rename {tests => examples}/assets/triangle/tmp.014.png (100%) rename {tests => examples}/assets/triangle/tmp.015.png (100%) rename {tests => examples}/assets/triangle/tmp.016.png (100%) rename {tests => examples}/assets/triangle/tmp.017.png (100%) rename {tests => examples}/assets/triangle/tmp.018.png (100%) rename {tests => examples}/assets/triangle/tmp.019.png (100%) rename {tests => examples}/assets/triangle/tmp.020.png (100%) rename {tests => examples}/assets/triangle/tmp.021.png (100%) rename {tests => examples}/assets/triangle/tmp.022.png (100%) rename {tests => examples}/assets/triangle/tmp.023.png (100%) rename {tests => examples}/assets/triangle/tmp.024.png (100%) rename {tests => examples}/assets/triangle/tmp.025.png (100%) rename {tests => examples}/assets/triangle/tmp.026.png (100%) rename {tests => examples}/assets/triangle/tmp.027.png (100%) rename {tests => examples}/assets/triangle/tmp.028.png (100%) rename {tests => examples}/assets/triangle/tmp.029.png (100%) rename {tests => examples}/assets/triangle/tmp.030.png (100%) rename {tests => examples}/assets/triangle/tmp.031.png (100%) rename {tests => examples}/assets/triangle/tmp.032.png (100%) rename {tests => examples}/assets/triangle/tmp.033.png (100%) rename {tests => examples}/assets/triangle/tmp.034.png (100%) rename {tests => examples}/assets/triangle/tmp.035.png (100%) rename {tests => examples}/assets/triangle/tmp.036.png (100%) rename {tests => examples}/assets/triangle/tmp.037.png (100%) rename {tests => examples}/assets/triangle/tmp.038.png (100%) rename {tests => examples}/assets/triangle/tmp.039.png (100%) rename {tests => examples}/assets/triangle/tmp.040.png (100%) rename {tests => examples}/assets/triangle/tmp.041.png (100%) rename {tests => examples}/assets/triangle/tmp.042.png (100%) rename {tests => examples}/assets/triangle/tmp.043.png (100%) rename {tests => examples}/assets/triangle/tmp.044.png (100%) rename {tests => examples}/assets/triangle/tmp.045.png (100%) rename {tests => examples}/assets/triangle/tmp.046.png (100%) rename {tests => examples}/assets/triangle/tmp.047.png (100%) rename {tests => examples}/assets/triangle/tmp.048.png (100%) rename {tests => examples}/assets/triangle/tmp.049.png (100%) rename {tests => examples}/assets/triangle/tmp.050.png (100%) rename {tests => examples}/assets/triangle/tmp.051.png (100%) rename {tests => examples}/assets/triangle/tmp.052.png (100%) rename {tests => examples}/assets/triangle/tmp.053.png (100%) rename {tests => examples}/assets/triangle/tmp.054.png (100%) rename {tests => examples}/assets/triangle/tmp.055.png (100%) rename {tests => examples}/assets/triangle/tmp.056.png (100%) rename {tests => examples}/assets/triangle/tmp.057.png (100%) rename {tests => examples}/assets/triangle/tmp.058.png (100%) rename {tests => examples}/assets/triangle/tmp.059.png (100%) diff --git a/tests/assets/StarWars3.wav b/examples/assets/StarWars3.wav similarity index 100% rename from tests/assets/StarWars3.wav rename to examples/assets/StarWars3.wav diff --git a/tests/assets/flame.avi b/examples/assets/flame.avi similarity index 100% rename from tests/assets/flame.avi rename to examples/assets/flame.avi diff --git a/tests/assets/triangle/audio.ogg b/examples/assets/triangle/audio.ogg similarity index 100% rename from tests/assets/triangle/audio.ogg rename to examples/assets/triangle/audio.ogg diff --git a/tests/assets/triangle/tmp.000.png b/examples/assets/triangle/tmp.000.png similarity index 100% rename from tests/assets/triangle/tmp.000.png rename to examples/assets/triangle/tmp.000.png diff --git a/tests/assets/triangle/tmp.001.png b/examples/assets/triangle/tmp.001.png similarity index 100% rename from tests/assets/triangle/tmp.001.png rename to examples/assets/triangle/tmp.001.png diff --git a/tests/assets/triangle/tmp.002.png b/examples/assets/triangle/tmp.002.png similarity index 100% rename from tests/assets/triangle/tmp.002.png rename to examples/assets/triangle/tmp.002.png diff --git a/tests/assets/triangle/tmp.003.png b/examples/assets/triangle/tmp.003.png similarity index 100% rename from tests/assets/triangle/tmp.003.png rename to examples/assets/triangle/tmp.003.png diff --git a/tests/assets/triangle/tmp.004.png b/examples/assets/triangle/tmp.004.png similarity index 100% rename from tests/assets/triangle/tmp.004.png rename to examples/assets/triangle/tmp.004.png diff --git a/tests/assets/triangle/tmp.005.png b/examples/assets/triangle/tmp.005.png similarity index 100% rename from tests/assets/triangle/tmp.005.png rename to examples/assets/triangle/tmp.005.png diff --git a/tests/assets/triangle/tmp.006.png b/examples/assets/triangle/tmp.006.png similarity index 100% rename from tests/assets/triangle/tmp.006.png rename to examples/assets/triangle/tmp.006.png diff --git a/tests/assets/triangle/tmp.007.png b/examples/assets/triangle/tmp.007.png similarity index 100% rename from tests/assets/triangle/tmp.007.png rename to examples/assets/triangle/tmp.007.png diff --git a/tests/assets/triangle/tmp.008.png b/examples/assets/triangle/tmp.008.png similarity index 100% rename from tests/assets/triangle/tmp.008.png rename to examples/assets/triangle/tmp.008.png diff --git a/tests/assets/triangle/tmp.009.png b/examples/assets/triangle/tmp.009.png similarity index 100% rename from tests/assets/triangle/tmp.009.png rename to examples/assets/triangle/tmp.009.png diff --git a/tests/assets/triangle/tmp.010.png b/examples/assets/triangle/tmp.010.png similarity index 100% rename from tests/assets/triangle/tmp.010.png rename to examples/assets/triangle/tmp.010.png diff --git a/tests/assets/triangle/tmp.011.png b/examples/assets/triangle/tmp.011.png similarity index 100% rename from tests/assets/triangle/tmp.011.png rename to examples/assets/triangle/tmp.011.png diff --git a/tests/assets/triangle/tmp.012.png b/examples/assets/triangle/tmp.012.png similarity index 100% rename from tests/assets/triangle/tmp.012.png rename to examples/assets/triangle/tmp.012.png diff --git a/tests/assets/triangle/tmp.013.png b/examples/assets/triangle/tmp.013.png similarity index 100% rename from tests/assets/triangle/tmp.013.png rename to examples/assets/triangle/tmp.013.png diff --git a/tests/assets/triangle/tmp.014.png b/examples/assets/triangle/tmp.014.png similarity index 100% rename from tests/assets/triangle/tmp.014.png rename to examples/assets/triangle/tmp.014.png diff --git a/tests/assets/triangle/tmp.015.png b/examples/assets/triangle/tmp.015.png similarity index 100% rename from tests/assets/triangle/tmp.015.png rename to examples/assets/triangle/tmp.015.png diff --git a/tests/assets/triangle/tmp.016.png b/examples/assets/triangle/tmp.016.png similarity index 100% rename from tests/assets/triangle/tmp.016.png rename to examples/assets/triangle/tmp.016.png diff --git a/tests/assets/triangle/tmp.017.png b/examples/assets/triangle/tmp.017.png similarity index 100% rename from tests/assets/triangle/tmp.017.png rename to examples/assets/triangle/tmp.017.png diff --git a/tests/assets/triangle/tmp.018.png b/examples/assets/triangle/tmp.018.png similarity index 100% rename from tests/assets/triangle/tmp.018.png rename to examples/assets/triangle/tmp.018.png diff --git a/tests/assets/triangle/tmp.019.png b/examples/assets/triangle/tmp.019.png similarity index 100% rename from tests/assets/triangle/tmp.019.png rename to examples/assets/triangle/tmp.019.png diff --git a/tests/assets/triangle/tmp.020.png b/examples/assets/triangle/tmp.020.png similarity index 100% rename from tests/assets/triangle/tmp.020.png rename to examples/assets/triangle/tmp.020.png diff --git a/tests/assets/triangle/tmp.021.png b/examples/assets/triangle/tmp.021.png similarity index 100% rename from tests/assets/triangle/tmp.021.png rename to examples/assets/triangle/tmp.021.png diff --git a/tests/assets/triangle/tmp.022.png b/examples/assets/triangle/tmp.022.png similarity index 100% rename from tests/assets/triangle/tmp.022.png rename to examples/assets/triangle/tmp.022.png diff --git a/tests/assets/triangle/tmp.023.png b/examples/assets/triangle/tmp.023.png similarity index 100% rename from tests/assets/triangle/tmp.023.png rename to examples/assets/triangle/tmp.023.png diff --git a/tests/assets/triangle/tmp.024.png b/examples/assets/triangle/tmp.024.png similarity index 100% rename from tests/assets/triangle/tmp.024.png rename to examples/assets/triangle/tmp.024.png diff --git a/tests/assets/triangle/tmp.025.png b/examples/assets/triangle/tmp.025.png similarity index 100% rename from tests/assets/triangle/tmp.025.png rename to examples/assets/triangle/tmp.025.png diff --git a/tests/assets/triangle/tmp.026.png b/examples/assets/triangle/tmp.026.png similarity index 100% rename from tests/assets/triangle/tmp.026.png rename to examples/assets/triangle/tmp.026.png diff --git a/tests/assets/triangle/tmp.027.png b/examples/assets/triangle/tmp.027.png similarity index 100% rename from tests/assets/triangle/tmp.027.png rename to examples/assets/triangle/tmp.027.png diff --git a/tests/assets/triangle/tmp.028.png b/examples/assets/triangle/tmp.028.png similarity index 100% rename from tests/assets/triangle/tmp.028.png rename to examples/assets/triangle/tmp.028.png diff --git a/tests/assets/triangle/tmp.029.png b/examples/assets/triangle/tmp.029.png similarity index 100% rename from tests/assets/triangle/tmp.029.png rename to examples/assets/triangle/tmp.029.png diff --git a/tests/assets/triangle/tmp.030.png b/examples/assets/triangle/tmp.030.png similarity index 100% rename from tests/assets/triangle/tmp.030.png rename to examples/assets/triangle/tmp.030.png diff --git a/tests/assets/triangle/tmp.031.png b/examples/assets/triangle/tmp.031.png similarity index 100% rename from tests/assets/triangle/tmp.031.png rename to examples/assets/triangle/tmp.031.png diff --git a/tests/assets/triangle/tmp.032.png b/examples/assets/triangle/tmp.032.png similarity index 100% rename from tests/assets/triangle/tmp.032.png rename to examples/assets/triangle/tmp.032.png diff --git a/tests/assets/triangle/tmp.033.png b/examples/assets/triangle/tmp.033.png similarity index 100% rename from tests/assets/triangle/tmp.033.png rename to examples/assets/triangle/tmp.033.png diff --git a/tests/assets/triangle/tmp.034.png b/examples/assets/triangle/tmp.034.png similarity index 100% rename from tests/assets/triangle/tmp.034.png rename to examples/assets/triangle/tmp.034.png diff --git a/tests/assets/triangle/tmp.035.png b/examples/assets/triangle/tmp.035.png similarity index 100% rename from tests/assets/triangle/tmp.035.png rename to examples/assets/triangle/tmp.035.png diff --git a/tests/assets/triangle/tmp.036.png b/examples/assets/triangle/tmp.036.png similarity index 100% rename from tests/assets/triangle/tmp.036.png rename to examples/assets/triangle/tmp.036.png diff --git a/tests/assets/triangle/tmp.037.png b/examples/assets/triangle/tmp.037.png similarity index 100% rename from tests/assets/triangle/tmp.037.png rename to examples/assets/triangle/tmp.037.png diff --git a/tests/assets/triangle/tmp.038.png b/examples/assets/triangle/tmp.038.png similarity index 100% rename from tests/assets/triangle/tmp.038.png rename to examples/assets/triangle/tmp.038.png diff --git a/tests/assets/triangle/tmp.039.png b/examples/assets/triangle/tmp.039.png similarity index 100% rename from tests/assets/triangle/tmp.039.png rename to examples/assets/triangle/tmp.039.png diff --git a/tests/assets/triangle/tmp.040.png b/examples/assets/triangle/tmp.040.png similarity index 100% rename from tests/assets/triangle/tmp.040.png rename to examples/assets/triangle/tmp.040.png diff --git a/tests/assets/triangle/tmp.041.png b/examples/assets/triangle/tmp.041.png similarity index 100% rename from tests/assets/triangle/tmp.041.png rename to examples/assets/triangle/tmp.041.png diff --git a/tests/assets/triangle/tmp.042.png b/examples/assets/triangle/tmp.042.png similarity index 100% rename from tests/assets/triangle/tmp.042.png rename to examples/assets/triangle/tmp.042.png diff --git a/tests/assets/triangle/tmp.043.png b/examples/assets/triangle/tmp.043.png similarity index 100% rename from tests/assets/triangle/tmp.043.png rename to examples/assets/triangle/tmp.043.png diff --git a/tests/assets/triangle/tmp.044.png b/examples/assets/triangle/tmp.044.png similarity index 100% rename from tests/assets/triangle/tmp.044.png rename to examples/assets/triangle/tmp.044.png diff --git a/tests/assets/triangle/tmp.045.png b/examples/assets/triangle/tmp.045.png similarity index 100% rename from tests/assets/triangle/tmp.045.png rename to examples/assets/triangle/tmp.045.png diff --git a/tests/assets/triangle/tmp.046.png b/examples/assets/triangle/tmp.046.png similarity index 100% rename from tests/assets/triangle/tmp.046.png rename to examples/assets/triangle/tmp.046.png diff --git a/tests/assets/triangle/tmp.047.png b/examples/assets/triangle/tmp.047.png similarity index 100% rename from tests/assets/triangle/tmp.047.png rename to examples/assets/triangle/tmp.047.png diff --git a/tests/assets/triangle/tmp.048.png b/examples/assets/triangle/tmp.048.png similarity index 100% rename from tests/assets/triangle/tmp.048.png rename to examples/assets/triangle/tmp.048.png diff --git a/tests/assets/triangle/tmp.049.png b/examples/assets/triangle/tmp.049.png similarity index 100% rename from tests/assets/triangle/tmp.049.png rename to examples/assets/triangle/tmp.049.png diff --git a/tests/assets/triangle/tmp.050.png b/examples/assets/triangle/tmp.050.png similarity index 100% rename from tests/assets/triangle/tmp.050.png rename to examples/assets/triangle/tmp.050.png diff --git a/tests/assets/triangle/tmp.051.png b/examples/assets/triangle/tmp.051.png similarity index 100% rename from tests/assets/triangle/tmp.051.png rename to examples/assets/triangle/tmp.051.png diff --git a/tests/assets/triangle/tmp.052.png b/examples/assets/triangle/tmp.052.png similarity index 100% rename from tests/assets/triangle/tmp.052.png rename to examples/assets/triangle/tmp.052.png diff --git a/tests/assets/triangle/tmp.053.png b/examples/assets/triangle/tmp.053.png similarity index 100% rename from tests/assets/triangle/tmp.053.png rename to examples/assets/triangle/tmp.053.png diff --git a/tests/assets/triangle/tmp.054.png b/examples/assets/triangle/tmp.054.png similarity index 100% rename from tests/assets/triangle/tmp.054.png rename to examples/assets/triangle/tmp.054.png diff --git a/tests/assets/triangle/tmp.055.png b/examples/assets/triangle/tmp.055.png similarity index 100% rename from tests/assets/triangle/tmp.055.png rename to examples/assets/triangle/tmp.055.png diff --git a/tests/assets/triangle/tmp.056.png b/examples/assets/triangle/tmp.056.png similarity index 100% rename from tests/assets/triangle/tmp.056.png rename to examples/assets/triangle/tmp.056.png diff --git a/tests/assets/triangle/tmp.057.png b/examples/assets/triangle/tmp.057.png similarity index 100% rename from tests/assets/triangle/tmp.057.png rename to examples/assets/triangle/tmp.057.png diff --git a/tests/assets/triangle/tmp.058.png b/examples/assets/triangle/tmp.058.png similarity index 100% rename from tests/assets/triangle/tmp.058.png rename to examples/assets/triangle/tmp.058.png diff --git a/tests/assets/triangle/tmp.059.png b/examples/assets/triangle/tmp.059.png similarity index 100% rename from tests/assets/triangle/tmp.059.png rename to examples/assets/triangle/tmp.059.png diff --git a/tests/constants.js b/tests/constants.js index 9e9d5d7..6060ebc 100644 --- a/tests/constants.js +++ b/tests/constants.js @@ -1,8 +1,7 @@ const TIMEOUT = 60000; -const BASE_URL = 'http://localhost:3000/tests/assets'; const IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined'; const OPTIONS = { - corePath: 'http://localhost:3000/node_modules/@ffmpeg/core/ffmpeg-core.js', + corePath: IS_BROWSER ? 'http://localhost:3000/node_modules/@ffmpeg/core/dist/ffmpeg-core.js' : '@ffmpeg/core', }; const FLAME_MP4_LENGTH = 100374; const META_FLAME_MP4_LENGTH = 100408; @@ -11,7 +10,6 @@ const META_FLAME_MP4_LENGTH_NO_SPACE = 100404; if (typeof module !== 'undefined') { module.exports = { TIMEOUT, - BASE_URL, IS_BROWSER, OPTIONS, FLAME_MP4_LENGTH, diff --git a/tests/ffmpeg.test.html b/tests/ffmpeg.test.html index 3d07955..f173422 100644 --- a/tests/ffmpeg.test.html +++ b/tests/ffmpeg.test.html @@ -8,12 +8,13 @@
- + diff --git a/tests/ffmpeg.test.js b/tests/ffmpeg.test.js index b663038..f6c42e7 100644 --- a/tests/ffmpeg.test.js +++ b/tests/ffmpeg.test.js @@ -1,62 +1,60 @@ const { createFFmpeg } = FFmpeg; -const ffmpeg = createFFmpeg(OPTIONS); -before(async function cb() { - this.timeout(0); - await ffmpeg.load(); +describe('load()', () => { + it('should throw error when not called before FS() and run()', () => { + const ffmpeg = createFFmpeg(OPTIONS); + expect(() => ffmpeg.FS('readdir', 'dummy')).to.throw(); + expect(() => ffmpeg.run('-h')).to.throw(); + }); + + it('should throw error when running load() more than once', async () => { + const ffmpeg = createFFmpeg(OPTIONS); + await ffmpeg.load(); + try { + await ffmpeg.load(); + } catch (e) { + expect(e).to.be.an('Error'); + } + }).timeout(TIMEOUT); }); -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) - )); - }); - }); +describe('isLoaded()', () => { + it('should return true when loaded', async () => { + const ffmpeg = createFFmpeg(OPTIONS); + await ffmpeg.load(); + expect(ffmpeg.isLoaded()).to.equal(true); + }).timeout(TIMEOUT); }); describe('run()', () => { - describe('should run a command with quoted parameters at start no spaces', () => { - ['flame.avi'].forEach((name) => ( - it(`run ${name}`, async () => { - await ffmpeg.write(name, `${BASE_URL}/${name}`); - await ffmpeg.run(`-y -i ${name} -metadata 'title="test"' output.mp4`); - const data = ffmpeg.read('output.mp4'); - expect(data.length).to.be(META_FLAME_MP4_LENGTH_NO_SPACE); - }).timeout(TIMEOUT) - )); + it('should not allow to run two command at the same time', async () => { + const ffmpeg = createFFmpeg(OPTIONS); + await ffmpeg.load(); + ffmpeg.run('-h'); + setTimeout(() => { + try { + ffmpeg.run('-h'); + } catch (e) { + expect(e).to.be.an(Error); + } + }, 500); + }).timeout(TIMEOUT); +}); + +describe('FS()', () => { + const ffmpeg = createFFmpeg(OPTIONS); + before(async function cb() { + this.timeout(0); + await ffmpeg.load(); }); - describe('should run a command with quoted parameters at start and a space in between', () => { - ['flame.avi'].forEach((name) => ( - it(`run ${name}`, async () => { - await ffmpeg.write(name, `${BASE_URL}/${name}`); - await ffmpeg.run(`-y -i ${name} -metadata 'title="my title"' output.mp4`); - const data = ffmpeg.read('output.mp4'); - expect(data.length).to.be(META_FLAME_MP4_LENGTH); - }).timeout(TIMEOUT) - )); + it('should throw error when readdir for invalid path ', () => { + expect(() => ffmpeg.FS('readdir', '/invalid')).to.throw(/readdir/); }); - - describe('should run a command with name quoted parameters and a space in between', () => { - ['flame.avi'].forEach((name) => ( - it(`run ${name}`, async () => { - await ffmpeg.write(name, `${BASE_URL}/${name}`); - await ffmpeg.run(`-y -i ${name} -metadata title="my title" output.mp4`); - const data = ffmpeg.read('output.mp4'); - expect(data.length).to.be(META_FLAME_MP4_LENGTH); - }).timeout(TIMEOUT) - )); + it('should throw error when readFile for invalid path ', () => { + expect(() => ffmpeg.FS('readFile', '/invalid')).to.throw(/readFile/); + }); + it('should throw an default error ', () => { + expect(() => ffmpeg.FS('unlink', '/invalid')).to.throw(/Oops/); }); });