116 lines
2.7 KiB
JavaScript
116 lines
2.7 KiB
JavaScript
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);
|
|
});
|
|
});
|
|
});
|