UNPKG

zencoder

Version:

Node integration library for Zencoder

101 lines (88 loc) 3.07 kB
var nock = require('nock') , scopes = require('./scopes.js') , expect = require('chai').expect , Zencoder = require('../index'); var scope = nock('https://app.zencoder.com') .matchHeader('Zencoder-Api-Key', '1234567abcde') .post('/api/v2/jobs') .reply(201, scopes.job.create) .get('/api/v2/jobs/1234') .reply(200, scopes.job.details) .put('/api/v2/jobs/12345/cancel') .reply(204) .put('/api/v2/jobs/123456/resubmit') .reply(204) .put('/api/v2/jobs/32123/finish') .reply(204) .get('/api/v2/jobs') .reply(200, scopes.job.list) .get('/api/v2/jobs?per_page=1') .reply(200, scopes.job.listLimit) .get('/api/v2/jobs/5432/progress') .reply(200, scopes.job.progress); describe('The Zencoder REST Client Job resource', function () { var client; beforeEach(function() { client = new Zencoder('1234567abcde'); }); it('should create a new job', function(done) { client.Job.create({ input: 's3://zencodertesting/test.mov' }, function(err, data, response){ expect(response.statusCode).to.equal(201); expect(data.id).to.be.above(0); expect(data.outputs.length).to.equal(1); done(); }); }); it('should return job details', function(done) { client.Job.details(1234).then(function({data, response}){ expect(response.statusCode).to.equal(200); expect(data.job.id).to.be.above(0); expect(data.job.output_media_files.length).to.equal(1); done(); }); }); it('should cancel a job', function(done) { client.Job.cancel(12345, function(err, data, response){ expect(response.statusCode).to.equal(204); done(); }); }); it('should resubmit a job', function(done) { client.Job.resubmit(123456).then(function({data, response}) { expect(response.statusCode).to.equal(204); done(); }); }); it('should finish a live job', function(done) { client.Job.finish(32123, function(err, data, response) { expect(response.statusCode).to.equal(204); done(); }) }); describe('list', function() { it('should return recent jobs', function(done) { client.Job.list().then(function({data, response}) { expect(response.statusCode).to.equal(200); expect(data.length).to.equal(3); done(); }) }); it('should return a limited set of recent jobs', function(done) { client.Job.list({per_page: 1}, function(err, data, response) { expect(response.statusCode).to.equal(200); expect(data.length).to.equal(1); done(); }) }) }); it('should return progress of a job', function(done) { client.Job.progress(5432, function(err, data, response) { expect(response.statusCode).to.equal(200); expect(data).to.have.property('state'); expect(data.outputs.length).to.equal(1); done(); }) }) });