import MembersParser from "../../utils/MembersParser";

describe('MembersExpression.test', () => {
    describe('parse Members Info from text ', () => {
        describe('MembersExpression.getUserIds() from text', () => {
            test('Wrong user Ids template', () => {
                // expect(MembersExpression.getUserIds(undefined)).toEqual([]);
                expect(MembersParser.getUserIndexes('')).toEqual([]);
                expect(MembersParser.getUserIndexes('[1,2')).toEqual([]);
                expect(MembersParser.getUserIndexes('[, ,]olma')).toEqual([]);
                expect(MembersParser.getUserIndexes('olma [1,2, ]')).toEqual([1, 2]);
                expect(MembersParser.getUserIndexes('(2+4)*8999[ 1,2,]')).toEqual([1, 2]);
                expect(MembersParser.getUserIndexes('[1,2.3]')).toEqual([]);
            });
        });

        describe('MembersExpression.getUsernames() from text', () => {
            test('Wrong usernames template', () => {
                expect(MembersParser.getUsernames(undefined)).toEqual([]);
                expect(MembersParser.getUsernames('')).toEqual([]);
                expect(
                    MembersParser.getUsernames(`Osh [1, 2] - 43 000 so\'m
      Sho\'rva[4] - 23 400 so\'m\n
       Choy - 3500 so\'m\n
         Non - 4000 so\'m\n
         Xizmat - 12%\n


          [@user1, tyun, koang\'ip, hwoa sdfa]`),
                ).toEqual(['@user1', 'tyun', "koang'ip", 'hwoa sdfa']);
                expect(MembersParser.getUsernames('[1,2')).toEqual([]);
                expect(MembersParser.getUsernames('[, ,]olma')).toEqual([]);
                expect(MembersParser.getUsernames('olma [1,2]')).toEqual([]);
                expect(MembersParser.getUsernames('(2+4)*8999[1,2, ]')).toEqual([]);
                expect(MembersParser.getUsernames('[234,45, ]')).toEqual([]);
                expect(MembersParser.getUsernames('[ _AS2, asf,aS]')).toEqual(['_AS2', 'asf', 'aS']);
                expect(MembersParser.getUsernames('[@user_2, @userName, Multi Name, kuu]')).toEqual(['@user_2', '@userName', 'Multi Name', 'kuu']);
            });
        });
    });
});