add gs
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
return function()
|
||||
local CorePackages = game:GetService("CorePackages")
|
||||
local Rodux = require(CorePackages.Rodux)
|
||||
|
||||
local Reducer = require(script.Parent.Parent.Reducers.Reducer)
|
||||
|
||||
local MockNetwork = require(script.Parent.Parent.Test.MockNetwork)
|
||||
local MockExternalSettings = require(script.Parent.Parent.Test.MockExternalSettings)
|
||||
|
||||
local Network = require(script.Parent.Parent.Services.Network)
|
||||
local ExternalSettings = require(script.Parent.Parent.Services.ExternalSettings)
|
||||
|
||||
local PromptState = require(script.Parent.Parent.PromptState)
|
||||
local Thunk = require(script.Parent.Parent.Thunk)
|
||||
|
||||
local initiatePurchase = require(script.Parent.initiatePurchase)
|
||||
|
||||
it("should run without errors", function()
|
||||
local store = Rodux.Store.new(Reducer)
|
||||
|
||||
local thunk = initiatePurchase(15, Enum.InfoType.Product, false)
|
||||
|
||||
Thunk.test(thunk, store, {
|
||||
[Network] = MockNetwork.new(),
|
||||
[ExternalSettings] = MockExternalSettings.new(false, false, false, false),
|
||||
})
|
||||
|
||||
local state = store:getState()
|
||||
|
||||
expect(state.product.id).to.equal(15)
|
||||
end)
|
||||
|
||||
it("should abort when a purchase is already in progress", function()
|
||||
local store = Rodux.Store.new(Reducer, {
|
||||
promptState = PromptState.PromptPurchase,
|
||||
product = {
|
||||
id = 12,
|
||||
infoType = Enum.InfoType.Product,
|
||||
}
|
||||
})
|
||||
|
||||
-- Initiate a purchase for a different product id
|
||||
local thunk = initiatePurchase(999, Enum.InfoType.Product, false)
|
||||
|
||||
Thunk.test(thunk, store, {
|
||||
[Network] = MockNetwork.new(),
|
||||
[ExternalSettings] = MockExternalSettings.new(false, false, false, false),
|
||||
})
|
||||
|
||||
local state = store:getState()
|
||||
expect(state.product.id).to.equal(12)
|
||||
expect(state.promptState).to.equal(PromptState.PromptPurchase)
|
||||
end)
|
||||
|
||||
it("should resolve to an error state if a network failure occurs", function()
|
||||
local store = Rodux.Store.new(Reducer)
|
||||
|
||||
local thunk = initiatePurchase(15, Enum.InfoType.Product, false)
|
||||
|
||||
Thunk.test(thunk, store, {
|
||||
[Network] = MockNetwork.new(true),
|
||||
[ExternalSettings] = MockExternalSettings.new(false, false, false, false),
|
||||
})
|
||||
|
||||
local state = store:getState()
|
||||
expect(state.promptState).to.equal(PromptState.Error)
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user