mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
The slash in command is stripped in the backend, rather than in the client to make the client code cleaner. This would make client code cleaner in the slash commands which include parameters.
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from zerver.lib.test_classes import (
|
|
ZulipTestCase,
|
|
)
|
|
|
|
class ZcommandTest(ZulipTestCase):
|
|
|
|
def test_invalid_zcommand(self) -> None:
|
|
self.login(self.example_email("hamlet"))
|
|
|
|
payload = dict(command="/boil-ocean")
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_error(result, "No such command: boil-ocean")
|
|
|
|
def test_ping_zcommand(self) -> None:
|
|
self.login(self.example_email("hamlet"))
|
|
|
|
payload = dict(command="/ping")
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_success(result)
|
|
|
|
def test_night_zcommand(self) -> None:
|
|
self.login(self.example_email("hamlet"))
|
|
user = self.example_user('hamlet')
|
|
user.night_mode = False
|
|
user.save()
|
|
|
|
payload = dict(command="/night")
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_success(result)
|
|
self.assertIn('Changed to night', result.json()['msg'])
|
|
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_success(result)
|
|
self.assertIn('still in night mode', result.json()['msg'])
|
|
|
|
def test_day_zcommand(self) -> None:
|
|
self.login(self.example_email("hamlet"))
|
|
user = self.example_user('hamlet')
|
|
user.night_mode = True
|
|
user.save()
|
|
|
|
payload = dict(command="/day")
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_success(result)
|
|
self.assertIn('Changed to day', result.json()['msg'])
|
|
|
|
result = self.client_post("/json/zcommand", payload)
|
|
self.assert_json_success(result)
|
|
self.assertIn('still in day mode', result.json()['msg'])
|