134 lines
3.8 KiB
Lua
134 lines
3.8 KiB
Lua
return function()
|
|
local CoreGui = game:GetService("CoreGui")
|
|
|
|
local Modules = CoreGui.RobloxGui.Modules
|
|
|
|
local LuaApp = Modules.LuaApp
|
|
local LuaChat = Modules.LuaChat
|
|
|
|
local AppState = require(LuaChat.AppState)
|
|
local ChatInputBar = require(LuaChat.Components.ChatInputBar)
|
|
|
|
local SetFormFactor = require(LuaApp.Actions.SetFormFactor)
|
|
local FormFactor = require(LuaApp.Enum.FormFactor)
|
|
|
|
local FFlagLuaChatInputBarRefactor = settings():GetFFlag("LuaChatInputBarRefactor")
|
|
|
|
describe("new", function()
|
|
it("should construct a new chat input bar with no errors", function()
|
|
local appState = AppState.mock()
|
|
appState.store:dispatch(SetFormFactor(FormFactor.TABLET))
|
|
|
|
local chatInputBar_Tablet = ChatInputBar.new(appState)
|
|
|
|
expect(chatInputBar_Tablet).to.be.ok()
|
|
|
|
chatInputBar_Tablet:Destruct()
|
|
|
|
appState.store:dispatch(SetFormFactor(FormFactor.PHONE))
|
|
|
|
local chatInputBar_Phone = ChatInputBar.new(appState)
|
|
|
|
expect(chatInputBar_Phone).to.be.ok()
|
|
|
|
chatInputBar_Phone:Destruct()
|
|
end)
|
|
end)
|
|
|
|
describe("isMessageValid", function()
|
|
if FFlagLuaChatInputBarRefactor then
|
|
it("should return false if string is longer than 160 characters", function()
|
|
local appState = AppState.mock()
|
|
local chatInputBar = ChatInputBar.new(appState)
|
|
|
|
local testString_Long = string.rep("b", 200)
|
|
local isMessageValid_Long = chatInputBar:_isMessageValid(testString_Long)
|
|
|
|
local testString_160 = string.rep("b", 160)
|
|
local isMessageValid_160 = chatInputBar:_isMessageValid(testString_160)
|
|
|
|
local testString_Short = "b"
|
|
local isMessageValid_Short = chatInputBar:_isMessageValid(testString_Short)
|
|
|
|
expect(isMessageValid_Long).to.equal(false)
|
|
expect(isMessageValid_160).to.equal(true)
|
|
expect(isMessageValid_Short).to.equal(true)
|
|
end)
|
|
end
|
|
|
|
it("should return false if string is only white space characters", function()
|
|
local appState = AppState.mock()
|
|
local chatInputBar = ChatInputBar.new(appState)
|
|
|
|
local testString_Empty = ""
|
|
local isMessageValid_Empty = chatInputBar:_isMessageValid(testString_Empty)
|
|
|
|
local testString_Space = " "
|
|
local isMessageValid_Space = chatInputBar:_isMessageValid(testString_Space)
|
|
|
|
local testString_NewLines = "\n\r\n"
|
|
local isMessageValid_NewLines = chatInputBar:_isMessageValid(testString_NewLines)
|
|
|
|
local testString_Hello = "hello"
|
|
local isMessageValid_Hello = chatInputBar:_isMessageValid(testString_Hello)
|
|
|
|
expect(isMessageValid_Empty).to.equal(false)
|
|
expect(isMessageValid_Space).to.equal(false)
|
|
expect(isMessageValid_NewLines).to.equal(false)
|
|
expect(isMessageValid_Hello).to.equal(true)
|
|
end)
|
|
end)
|
|
|
|
describe("SendMessage", function()
|
|
it("should fire SendButtonPressed when invoked", function()
|
|
local appState = AppState.mock()
|
|
local chatInputBar = ChatInputBar.new(appState)
|
|
|
|
local count = 0
|
|
chatInputBar.SendButtonPressed:Connect(function()
|
|
count = count + 1
|
|
end)
|
|
|
|
chatInputBar.textBox.Text = "hello"
|
|
chatInputBar:SendMessage()
|
|
|
|
expect(count).to.equal(1)
|
|
|
|
chatInputBar.textBox.Text = "goodbye"
|
|
chatInputBar:SendMessage()
|
|
|
|
expect(count).to.equal(2)
|
|
end)
|
|
|
|
it("should not send messages when text is invalid", function()
|
|
local appState = AppState.mock()
|
|
local chatInputBar = ChatInputBar.new(appState)
|
|
|
|
local count = 0
|
|
chatInputBar.SendButtonPressed:Connect(function()
|
|
count = count + 1
|
|
end)
|
|
|
|
chatInputBar.textBox.Text = ""
|
|
chatInputBar:SendMessage()
|
|
|
|
expect(count).to.equal(0)
|
|
|
|
chatInputBar.textBox.Text = "\n\n"
|
|
chatInputBar:SendMessage()
|
|
|
|
expect(count).to.equal(0)
|
|
end)
|
|
|
|
it("should reset textBox when invoked", function()
|
|
local appState = AppState.mock()
|
|
local chatInputBar = ChatInputBar.new(appState)
|
|
|
|
chatInputBar.textBox.Text = "hello"
|
|
chatInputBar:SendMessage()
|
|
|
|
expect(chatInputBar.textBox.Text).to.equal("")
|
|
end)
|
|
|
|
end)
|
|
end |