forked from PluralFlux/PluralFlux
Compare commits
3 Commits
4bb267f990
...
Develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
badc6baaf0 | ||
|
|
96c2abc06a | ||
| c2a88804ad |
@@ -6,6 +6,8 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: ["main"]
|
branches: ["main"]
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ PluralFlux is a proxybot akin to PluralKit and Tupperbox, but for [Fluxer](https
|
|||||||
|
|
||||||
[Sponsor the project](https://github.com/sponsors/pieartsy)
|
[Sponsor the project](https://github.com/sponsors/pieartsy)
|
||||||
|
|
||||||
If it's not running at the moment, it's because my computer crashed or something. I'm looking to move running it to a somewhat more permanent solution.
|
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
All commands are prefixed by `pf;`. Currently only a few are implemented.
|
All commands are prefixed by `pf;`. Currently only a few are implemented.
|
||||||
|
|
||||||
|
|||||||
@@ -23,3 +23,4 @@ services:
|
|||||||
- pgadmindata:/var/lib/pgadmin
|
- pgadmindata:/var/lib/pgadmin
|
||||||
volumes:
|
volumes:
|
||||||
pgdata:
|
pgdata:
|
||||||
|
pgadmindata:
|
||||||
@@ -293,6 +293,21 @@ describe('bot', () => {
|
|||||||
expect(client.login).toHaveBeenCalledWith(process.env.FLUXER_BOT_TOKEN)
|
expect(client.login).toHaveBeenCalledWith(process.env.FLUXER_BOT_TOKEN)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('login exits with code 1 if client.login fails', async () => {
|
||||||
|
// Arrange
|
||||||
|
let message = "client.login failed";
|
||||||
|
client.login = jest.fn().mockImplementation(() => { throw new Error(message) });
|
||||||
|
jest.spyOn(global.console, 'error').mockImplementation(() => {});
|
||||||
|
jest.spyOn(process, 'exit').mockImplementation(() => {});
|
||||||
|
// Act
|
||||||
|
await login();
|
||||||
|
// Assert
|
||||||
|
expect(console.error).toHaveBeenCalledTimes(1);
|
||||||
|
expect(console.error).toHaveBeenCalledWith('Login failed:', new Error(message));
|
||||||
|
expect(process.exit).toHaveBeenCalledTimes(1);
|
||||||
|
expect(process.exit).toHaveBeenCalledWith(1);
|
||||||
|
})
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
// restore the spy created with spyOn
|
// restore the spy created with spyOn
|
||||||
jest.restoreAllMocks();
|
jest.restoreAllMocks();
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ describe('MemberHelper', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test.each([
|
test.each([
|
||||||
|
[[mockMember.name], null, null, undefined, false, mockMember.name],
|
||||||
[[mockMember.name, '--help'], null, null, undefined, true, undefined],
|
[[mockMember.name, '--help'], null, null, undefined, true, undefined],
|
||||||
[['new', '--help'], null, null, 'new', true, '--help'],
|
[['new', '--help'], null, null, 'new', true, '--help'],
|
||||||
[['remove', '--help'], null, null, 'remove', true, '--help'],
|
[['remove', '--help'], null, null, 'remove', true, '--help'],
|
||||||
@@ -474,6 +475,30 @@ describe('MemberHelper', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('removeMember', () => {
|
||||||
|
test('if removeMember returns a positive number, return a success message', async () => {
|
||||||
|
// Arrange
|
||||||
|
memberRepo.removeMember.mockResolvedValue(1);
|
||||||
|
const expectedReturn = `Member "${mockMember.name}" has been deleted.`;
|
||||||
|
// Act
|
||||||
|
const res = await memberHelper.removeMember(authorId, mockMember.name);
|
||||||
|
// Assert
|
||||||
|
expect(memberRepo.removeMember).toHaveBeenCalledTimes(1);
|
||||||
|
expect(memberRepo.removeMember).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
|
expect(res).toEqual(expectedReturn);
|
||||||
|
})
|
||||||
|
|
||||||
|
test('if removeMember returns a negative number, throw error', async () => {
|
||||||
|
// Arrange
|
||||||
|
memberRepo.removeMember.mockResolvedValue(-1);
|
||||||
|
// Act
|
||||||
|
expect(memberHelper.removeMember(authorId, mockMember.name)).rejects.toThrow(new Error(`${enums.err.NO_MEMBER}`));
|
||||||
|
// Assert
|
||||||
|
expect(memberRepo.removeMember).toHaveBeenCalledTimes(1);
|
||||||
|
expect(memberRepo.removeMember).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
describe('addFullMember', () => {
|
describe('addFullMember', () => {
|
||||||
test('calls getMemberByName', async () => {
|
test('calls getMemberByName', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
@@ -504,6 +529,29 @@ describe('MemberHelper', () => {
|
|||||||
expect(memberRepo.createMember).not.toHaveBeenCalled();
|
expect(memberRepo.createMember).not.toHaveBeenCalled();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('if displayName is not filled out, call memberRepo.createMember with null value', async () => {
|
||||||
|
// Arrange
|
||||||
|
memberRepo.getMemberByName.mockResolvedValue();
|
||||||
|
const expectedMemberArgs = {
|
||||||
|
name: mockMember.name,
|
||||||
|
userid: authorId,
|
||||||
|
displayname: null,
|
||||||
|
proxy: null,
|
||||||
|
propic: null
|
||||||
|
}
|
||||||
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
|
const expectedReturn = {
|
||||||
|
member: expectedMemberArgs,
|
||||||
|
errors: [`Display name ${enums.err.NO_VALUE}. ${enums.err.SET_TO_NULL}`]
|
||||||
|
}
|
||||||
|
// Act
|
||||||
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, " ");
|
||||||
|
// Assert
|
||||||
|
expect(res).toEqual(expectedReturn);
|
||||||
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
|
})
|
||||||
|
|
||||||
test('if displayname is over 32 characters, call memberRepo.createMember with null value', async () => {
|
test('if displayname is over 32 characters, call memberRepo.createMember with null value', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
memberRepo.getMemberByName.mockResolvedValue();
|
memberRepo.getMemberByName.mockResolvedValue();
|
||||||
|
|||||||
Reference in New Issue
Block a user