add gs
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
return function()
|
||||
local CoreGui = game:GetService("CoreGui")
|
||||
local Modules = CoreGui.RobloxGui.Modules
|
||||
|
||||
local ChatMaster = require(Modules.ChatMaster)
|
||||
local Rodux = require(Modules.Common.Rodux)
|
||||
local AppReducer = require(Modules.LuaApp.AppReducer)
|
||||
local DialogInfo = require(Modules.LuaChat.DialogInfo)
|
||||
local RemoveRoute = require(Modules.LuaChat.Actions.RemoveRoute)
|
||||
local SetRoute = require(Modules.LuaChat.Actions.SetRoute)
|
||||
|
||||
local function closeGameShare(chatMaster)
|
||||
chatMaster._appState.store:dispatch(RemoveRoute(DialogInfo.Intent.GameShare))
|
||||
chatMaster:Stop(ChatMaster.Type.GameShare)
|
||||
end
|
||||
|
||||
describe("new", function()
|
||||
it("should create a ChatMaster object", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
|
||||
it("should optionally take a rodux store as an argument", function()
|
||||
local store = Rodux.Store.new(AppReducer)
|
||||
local chatMaster = ChatMaster.new(store)
|
||||
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("Start", function()
|
||||
it("should open chat with no arguments", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
chatMaster:Start()
|
||||
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
|
||||
it("should open Share Game To Chat with valid arguments", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("Stop", function()
|
||||
it("should close chat with no arguments", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
chatMaster:Start()
|
||||
chatMaster:Stop()
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
|
||||
it("should close given GameShare as an argument", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
chatMaster:Stop(ChatMaster.Type.GameShare)
|
||||
expect(chatMaster).to.be.ok()
|
||||
end)
|
||||
|
||||
it("closing after GameShare should remove GameShare route", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
local appState = chatMaster._appState
|
||||
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.GameShare)
|
||||
closeGameShare(chatMaster)
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.never.equal(DialogInfo.Intent.GameShare)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("LuaChat and GameShare interaction", function()
|
||||
it("opening LuaChat after closing GameShare should open the ConversationHub", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
local appState = chatMaster._appState
|
||||
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.GameShare)
|
||||
closeGameShare(chatMaster)
|
||||
chatMaster:Start(ChatMaster.Type.Default)
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.ConversationHub)
|
||||
end)
|
||||
|
||||
it("opening GameShare after closing LuaChat should open the GameShare screen", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
local appState = chatMaster._appState
|
||||
|
||||
chatMaster:Start(ChatMaster.Type.Default)
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.ConversationHub)
|
||||
chatMaster:Stop(ChatMaster.Type.Default)
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.GameShare)
|
||||
|
||||
closeGameShare(chatMaster)
|
||||
chatMaster:Start(ChatMaster.Type.Default)
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current.intent).to.equal(DialogInfo.Intent.ConversationHub)
|
||||
end)
|
||||
|
||||
it("closing GameShare should preserve the user's location history", function()
|
||||
local chatMaster = ChatMaster.new()
|
||||
local appState = chatMaster._appState
|
||||
|
||||
chatMaster:Start()
|
||||
appState.store:dispatch(SetRoute(DialogInfo.Intent.Conversation, {conversationId = "1"}))
|
||||
chatMaster:Stop()
|
||||
|
||||
local conversationLocation = appState.store:getState().ChatAppReducer.Location.current
|
||||
expect(conversationLocation).to.be.ok()
|
||||
|
||||
chatMaster:Start(ChatMaster.Type.GameShare, {placeId = "1818"})
|
||||
closeGameShare(chatMaster)
|
||||
|
||||
chatMaster:Start()
|
||||
expect(appState.store:getState().ChatAppReducer.Location.current).to.equal(conversationLocation)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user