// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import TestHelper from 'tests/helpers/client-test-helper.jsx'; const fs = require('fs'); describe('Client.File', function() { const testGifFileName = 'testFile.gif'; beforeAll(function() { // write a temporary file so that we have something to upload for testing const buffer = new Buffer('R0lGODlhAQABAIABAP///wAAACwAAAAAAQABAAACAkQBADs=', 'base64'); const testGif = fs.openSync(testGifFileName, 'w+'); fs.writeFileSync(testGif, buffer); }); afterAll(function() { fs.unlinkSync(testGifFileName); }); test('uploadFile', function(done) { TestHelper.initBasic(done, () => { const clientId = TestHelper.generateId(); TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, clientId, function(resp) { expect(resp.file_infos.length).toBe(1); expect(resp.client_ids.length).toBe(1); expect(resp.client_ids[0]).toEqual(clientId); done(); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getFile', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { TestHelper.basicClient().getFile( resp.file_infos[0].id, function() { done(); }, function(err2) { done.fail(new Error(err2.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getFileThumbnail', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { TestHelper.basicClient().getFileThumbnail( resp.file_infos[0].id, function() { done(); }, function(err) { done.fail(new Error(err.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getFilePreview', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { TestHelper.basicClient().getFilePreview( resp.file_infos[0].id, function() { done(); }, function(err2) { done.fail(new Error(err2.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getFileInfo', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { const fileId = resp.file_infos[0].id; TestHelper.basicClient().getFileInfo( fileId, function(info) { expect(info.id).toEqual(fileId); expect(info.name).toEqual(testGifFileName); done(); }, function(err2) { done.fail(new Error(err2.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getPublicLink', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().enableLogErrorsToConsole(false); // Disabling since this unit test causes an error TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { const post = TestHelper.fakePost(); post.channel_id = TestHelper.basicChannel().id; post.file_ids = resp.file_infos.map((info) => info.id); TestHelper.basicClient().createPost( post, function(data) { expect(data.file_ids).toEqual(post.file_ids); TestHelper.basicClient().getPublicLink( post.file_ids[0], function() { done.fail(new Error('public links should be disabled by default')); // request. // get(link). // end(TestHelper.basicChannel().handleResponse.bind( // this, // 'getPublicLink', // function() { // done(); // }, // function(err4) { // done.fail(new Error(err4.message)); // } // )); }, function() { done(); // done.fail(new Error(err3.message)); } ); }, function(err2) { done.fail(new Error(err2.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); test('getFileInfosForPost', function(done) { TestHelper.initBasic(done, () => { TestHelper.basicClient().uploadFile( fs.createReadStream(testGifFileName), testGifFileName, TestHelper.basicChannel().id, '', function(resp) { const post = TestHelper.fakePost(); post.channel_id = TestHelper.basicChannel().id; post.file_ids = resp.file_infos.map((info) => info.id); TestHelper.basicClient().createPost( post, function(data) { expect(data.file_ids).toEqual(post.file_ids); TestHelper.basicClient().getFileInfosForPost( post.channel_id, data.id, function(files) { expect(files.length).toBe(1); expect(files[0].id).toEqual(resp.file_infos[0].id); done(); }, function(err3) { done.fail(new Error(err3.message)); } ); }, function(err2) { done.fail(new Error(err2.message)); } ); }, function(err) { done.fail(new Error(err.message)); } ); }); }); });