[FIX] REST endpoint for creating custom emojis (#13306)

* Skip custom emoji tests

* Fix emoji.create endpoint and re-enable tests
pull/13323/head
Diego Sampaio 6 years ago
parent ac1ed8e3c7
commit 7ab34af0e6
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 26
      packages/rocketchat-api/server/v1/emoji-custom.js
  2. 1
      tests/end-to-end/ui/11-admin.js

@ -16,35 +16,39 @@ RocketChat.API.v1.addRoute('emoji-custom.create', { authRequired: true }, {
Meteor.runAsUser(this.userId, () => {
const fields = {};
const busboy = new Busboy({ headers: this.request.headers });
const emojiData = [];
let emojiMimetype = '';
Meteor.wrapAsync((callback) => {
busboy.on('file', Meteor.bindEnvironment((fieldname, file, filename, encoding, mimetype) => {
if (fieldname !== 'emoji') {
return callback(new Meteor.Error('invalid-field'));
}
const emojiData = [];
file.on('data', Meteor.bindEnvironment((data) => emojiData.push(data)));
file.on('end', Meteor.bindEnvironment(() => {
const extension = mimetype.split('/')[1];
emojiMimetype = mimetype;
fields.extension = extension;
fields.newFile = true;
fields.aliases = fields.aliases || '';
try {
Meteor.call('insertOrUpdateEmoji', fields);
Meteor.call('uploadEmojiCustom', Buffer.concat(emojiData), mimetype, fields);
callback();
} catch (error) {
return callback(error);
}
}));
}));
busboy.on('field', (fieldname, val) => {
fields[fieldname] = val;
});
busboy.on('finish', Meteor.bindEnvironment(() => {
fields.newFile = true;
fields.aliases = fields.aliases || '';
try {
Meteor.call('insertOrUpdateEmoji', fields);
Meteor.call('uploadEmojiCustom', Buffer.concat(emojiData), emojiMimetype, fields);
callback();
} catch (error) {
return callback(error);
}
}));
this.request.pipe(busboy);
})();
});
},
});

@ -874,6 +874,7 @@ describe('[Administration]', () => {
});
it('it should show the enter key behavior field', () => {
browser.scroll(0, 500);
admin.accountsSendOnEnter.click();
admin.accountsSendOnEnter.isVisible().should.be.true;
});

Loading…
Cancel
Save