import { getDomain, acctFull, isStaff, isAdmin, isModerator, } from '../accounts'; import { fromJS } from 'immutable'; describe('getDomain', () => { const account = fromJS({ acct: 'alice', url: 'https://party.com/users/alice', }); it('returns the domain', () => { expect(getDomain(account)).toEqual('party.com'); }); }); describe('acctFull', () => { describe('with a local user', () => { const account = fromJS({ acct: 'alice', url: 'https://party.com/users/alice', }); it('returns the full acct', () => { expect(acctFull(account)).toEqual('alice@party.com'); }); }); describe('with a remote user', () => { const account = fromJS({ acct: 'bob@pool.com', url: 'https://pool.com/users/bob', }); it('returns the full acct', () => { expect(acctFull(account)).toEqual('bob@pool.com'); }); }); }); describe('isStaff', () => { describe('with empty user', () => { const account = fromJS({}); it('returns false', () => { expect(isStaff(account)).toBe(false); }); }); describe('with Pleroma admin', () => { const admin = fromJS({ pleroma: { is_admin: true } }); it('returns true', () => { expect(isStaff(admin)).toBe(true); }); }); describe('with Pleroma moderator', () => { const mod = fromJS({ pleroma: { is_moderator: true } }); it('returns true', () => { expect(isStaff(mod)).toBe(true); }); }); describe('with undefined', () => { const account = undefined; it('returns false', () => { expect(isStaff(account)).toBe(false); }); }); }); describe('isAdmin', () => { describe('with empty user', () => { const account = fromJS({}); it('returns false', () => { expect(isAdmin(account)).toBe(false); }); }); describe('with Pleroma admin', () => { const admin = fromJS({ pleroma: { is_admin: true } }); it('returns true', () => { expect(isAdmin(admin)).toBe(true); }); }); describe('with Pleroma moderator', () => { const mod = fromJS({ pleroma: { is_moderator: true } }); it('returns false', () => { expect(isAdmin(mod)).toBe(false); }); }); }); describe('isModerator', () => { describe('with empty user', () => { const account = fromJS({}); it('returns false', () => { expect(isModerator(account)).toBe(false); }); }); describe('with Pleroma admin', () => { const admin = fromJS({ pleroma: { is_admin: true } }); it('returns false', () => { expect(isModerator(admin)).toBe(false); }); }); describe('with Pleroma moderator', () => { const mod = fromJS({ pleroma: { is_moderator: true } }); it('returns true', () => { expect(isModerator(mod)).toBe(true); }); }); });