The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/packages/apps-engine/tests/server/accessors/SlashCommandsModify.spec.ts

47 lines
1.8 KiB

import { AsyncTest, Expect, SetupFixture, SpyOn } from 'alsatian';
import type { ISlashCommand } from '../../../src/definition/slashcommands';
import { SlashCommandsModify } from '../../../src/server/accessors';
import type { AppSlashCommandManager } from '../../../src/server/managers';
import { TestData } from '../../test-data/utilities';
export class SlashCommandsModifyTestFixture {
private cmd: ISlashCommand;
private mockAppId: string;
private mockCmdManager: AppSlashCommandManager;
@SetupFixture
public setupFixture() {
this.cmd = TestData.getSlashCommand();
this.mockAppId = 'testing-app';
this.mockCmdManager = {
modifyCommand(appId: string, command: ISlashCommand): void {},
disableCommand(appId: string, command: string): void {},
enableCommand(appId: string, command: string): void {},
} as AppSlashCommandManager;
}
@AsyncTest()
public async useSlashCommandsModify() {
Expect(() => new SlashCommandsModify(this.mockCmdManager, this.mockAppId)).not.toThrow();
const sp1 = SpyOn(this.mockCmdManager, 'modifyCommand');
const sp2 = SpyOn(this.mockCmdManager, 'disableCommand');
const sp3 = SpyOn(this.mockCmdManager, 'enableCommand');
const scm = new SlashCommandsModify(this.mockCmdManager, this.mockAppId);
Expect(await scm.modifySlashCommand(this.cmd)).not.toBeDefined();
Expect(this.mockCmdManager.modifyCommand).toHaveBeenCalledWith(this.mockAppId, this.cmd);
Expect(await scm.disableSlashCommand('testing-cmd')).not.toBeDefined();
Expect(this.mockCmdManager.disableCommand).toHaveBeenCalledWith(this.mockAppId, 'testing-cmd');
Expect(await scm.enableSlashCommand('testing-cmd')).not.toBeDefined();
Expect(this.mockCmdManager.enableCommand).toHaveBeenCalledWith(this.mockAppId, 'testing-cmd');
sp1.restore();
sp2.restore();
sp3.restore();
}
}