summaryrefslogtreecommitdiffstats
path: root/webapp/tests/client/client_emoji.test.jsx
blob: da7fab71170c1cbffa3e8fdcd93d8bf3469f853a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// 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.Emoji', function() {
    const testGifFileName = 'testEmoji.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('addEmoji', function(done) {
        TestHelper.initBasic(done, () => {
            const name = TestHelper.generateId();

            TestHelper.basicClient().addEmoji(
                {creator_id: TestHelper.basicUser().id, name},
                fs.createReadStream(testGifFileName),
                function(data) {
                    expect(data.name).toEqual(name);
                    expect(data.id).not.toBeNull();

                    //TestHelper.basicClient().deleteEmoji(data.id);
                    done();
                },
                function(err) {
                    done.fail(new Error(err.message));
                }
            );
        });
    });

    test('deleteEmoji', function(done) {
        TestHelper.initBasic(done, () => {
            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.fail(new Error(err.message));
                        }
                    );
                },
                function(err) {
                    done.fail(new Error(err.message));
                }
            );
        });
    });

    test('listEmoji', function(done) {
        TestHelper.initBasic(done, () => {
            const name = TestHelper.generateId();
            TestHelper.basicClient().addEmoji(
                {creator_id: TestHelper.basicUser().id, name},
                fs.createReadStream(testGifFileName),
                function() {
                    TestHelper.basicClient().listEmoji(
                        function(data) {
                            expect(data.length).toBeGreaterThan(0);

                            let found = false;
                            for (const emoji of data) {
                                if (emoji.name === name) {
                                    found = true;
                                    break;
                                }
                            }

                            if (found) {
                                done();
                            } else {
                                done.fail(new Error('test emoji wasn\'t returned'));
                            }
                        },
                        function(err) {
                            done.fail(new Error(err.message));
                        }
                    );
                },
                function(err) {
                    done.fail(new Error(err.message));
                }
            );
        });
    });
});