98 lines
2.3 KiB
Lua
98 lines
2.3 KiB
Lua
return function()
|
|
local Component = require(script.Parent.PureComponent)
|
|
local GlobalConfig = require(script.Parent.GlobalConfig)
|
|
local Reconciler = require(script.Parent.Reconciler)
|
|
local createElement = require(script.Parent.createElement)
|
|
|
|
local Instrumentation = require(script.Parent.Instrumentation)
|
|
|
|
it("should count and time renders when enabled", function()
|
|
GlobalConfig.set({
|
|
["componentInstrumentation"] = true,
|
|
})
|
|
local triggerUpdate
|
|
|
|
local TestComponent = Component:extend("TestComponent")
|
|
function TestComponent:init()
|
|
self.state = {
|
|
value = 0
|
|
}
|
|
end
|
|
|
|
function TestComponent:render()
|
|
return nil
|
|
end
|
|
|
|
function TestComponent:didMount()
|
|
triggerUpdate = function()
|
|
self:setState({
|
|
value = self.state.value + 1
|
|
})
|
|
end
|
|
end
|
|
|
|
local instance = Reconciler.mount(createElement(TestComponent))
|
|
|
|
local stats = Instrumentation.getCollectedStats()
|
|
expect(stats.TestComponent).to.be.ok()
|
|
expect(stats.TestComponent.renderCount).to.equal(1)
|
|
|
|
triggerUpdate()
|
|
expect(stats.TestComponent.renderCount).to.equal(2)
|
|
|
|
Reconciler.unmount(instance)
|
|
Instrumentation.clearCollectedStats()
|
|
GlobalConfig.reset()
|
|
end)
|
|
|
|
it("should count and time shouldUpdate calls when enabled", function()
|
|
GlobalConfig.set({
|
|
["componentInstrumentation"] = true,
|
|
})
|
|
local triggerUpdate
|
|
local willDoUpdate = false
|
|
|
|
local TestComponent = Component:extend("TestComponent")
|
|
|
|
function TestComponent:init()
|
|
self.state = {
|
|
value = 0,
|
|
}
|
|
end
|
|
|
|
function TestComponent:shouldUpdate()
|
|
return willDoUpdate
|
|
end
|
|
|
|
function TestComponent:didMount()
|
|
triggerUpdate = function()
|
|
self:setState({
|
|
value = self.state.value + 1,
|
|
})
|
|
end
|
|
end
|
|
|
|
function TestComponent:render() end
|
|
|
|
local instance = Reconciler.mount(createElement(TestComponent))
|
|
|
|
local stats = Instrumentation.getCollectedStats()
|
|
|
|
willDoUpdate = true
|
|
triggerUpdate()
|
|
|
|
expect(stats.TestComponent).to.be.ok()
|
|
expect(stats.TestComponent.updateReqCount).to.equal(1)
|
|
expect(stats.TestComponent.didUpdateCount).to.equal(1)
|
|
|
|
willDoUpdate = false
|
|
triggerUpdate()
|
|
|
|
expect(stats.TestComponent.updateReqCount).to.equal(2)
|
|
expect(stats.TestComponent.didUpdateCount).to.equal(1)
|
|
|
|
Reconciler.unmount(instance)
|
|
Instrumentation.clearCollectedStats()
|
|
GlobalConfig.reset()
|
|
end)
|
|
end |