// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import assert from 'assert'; import TestHelper from './test_helper.jsx'; const fs = require('fs'); describe('Client.Emoji', function() { this.timeout(100000); const testGifFileName = 'testEmoji.gif'; before(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); }); after(function() { fs.unlinkSync(testGifFileName); }); it('addEmoji', function(done) { TestHelper.initBasic(() => { const name = TestHelper.generateId(); TestHelper.basicClient().addEmoji( {creator_id: TestHelper.basicUser().id, name}, fs.createReadStream(testGifFileName), function(data) { assert.equal(data.name, name); assert.notEqual(data.id, null); TestHelper.basicClient().deleteEmoji(data.id); done(); }, function(err) { done(new Error(err.message)); } ); }); }); it('deleteEmoji', function(done) { TestHelper.initBasic(() => { TestHelper.basicClient().addEmoji( {creator_id: TestHelper.basicUser().id, name: TestHelper.generateId()}, fs.createReadStream(testGifFileName), function(data) { TestHelper.basicClient().deleteEmoji( data.id, function() { done(); }, function(err) { done(new Error(err.message)); } ); }, function(err) { done(new Error(err.message)); } ); }); }); it('listEmoji', function(done) { TestHelper.initBasic(() => { const name = TestHelper.generateId(); TestHelper.basicClient().addEmoji( {creator_id: TestHelper.basicUser().id, name}, fs.createReadStream(testGifFileName), function() { TestHelper.basicClient().listEmoji( function(data) { assert(data.length > 0, true); let found = false; for (const emoji of data) { if (emoji.name === name) { found = true; break; } } if (found) { done(); } else { done(new Error('test emoji wasn\'t returned')); } }, function(err) { done(new Error(err.message)); } ); }, function(err) { done(new Error(err.message)); } ); }); }); });