status-desktop/storybook/qmlTests/tests/tst_DappsComboBox.qml

131 lines
4.2 KiB
QML

import QtQuick 2.15
import QtQml.Models 2.15
import QtTest 1.15
import AppLayouts.Wallet.controls 1.0
Item {
id: root
width: 600
height: 400
Component {
id: componentUnderTest
DappsComboBox {
anchors.centerIn: parent
model: ListModel {}
}
}
SignalSpy {
id: dappsListReadySpy
target: controlUnderTest
signalName: "dappsListReady"
}
property DappsComboBox controlUnderTest: null
TestCase {
name: "DappsComboBox"
when: windowShown
function init() {
controlUnderTest = createTemporaryObject(componentUnderTest, root)
dappsListReadySpy.clear()
}
function test_basicGeometry() {
verify(controlUnderTest.width > 0)
verify(controlUnderTest.height > 0)
}
function test_showStatusIndicator() {
const indicator = findChild(controlUnderTest, "dappBadge")
compare(indicator.visible, false)
controlUnderTest.model.append({name: "Test dApp 1", url: "https://dapp.test/1", iconUrl: "https://se-sdk-dapp.vercel.app/assets/eip155:1.png"})
compare(indicator.visible, true)
controlUnderTest.model.clear()
compare(indicator.visible, false)
}
function test_dappIcon() {
const icon = findChild(controlUnderTest, "dappIcon")
compare(icon.icon, "dapp")
compare(icon.width, 16)
compare(icon.height, 16)
compare(icon.status, Image.Ready)
}
function test_openingPopup() {
mouseClick(controlUnderTest)
const popup = findChild(controlUnderTest, "dappsListPopup")
compare(popup.visible, true)
compare(popup.x, controlUnderTest.width - popup.width)
compare(popup.y, controlUnderTest.height + 4)
compare(popup.width, 312)
verify(popup.height > 0)
compare(dappsListReadySpy.count, 1)
const background = findChild(controlUnderTest, "dappsBackground")
compare(background.active, true)
mouseClick(controlUnderTest)
compare(popup.visible, false)
compare(background.active, false)
}
function test_hoverState() {
const background = findChild(controlUnderTest, "dappsBackground")
compare(background.active, false)
mouseMove(controlUnderTest, controlUnderTest.width/2, controlUnderTest.height/2)
compare(background.active, true)
compare(controlUnderTest.hovered, true)
const dappTooltip = findChild(controlUnderTest, "dappTooltip")
wait(dappTooltip.delay + 50)
compare(dappTooltip.visible, true)
compare(dappTooltip.text, "dApp connections")
verify(dappTooltip.width > 0)
verify(dappTooltip.height > 0)
verify(dappTooltip.y > controlUnderTest.height)
mouseMove(root)
compare(background.active, false)
compare(dappTooltip.visible, false)
}
function test_connectorsEnabledOrDisabled() {
mouseClick(controlUnderTest)
const dappListPopup = findChild(controlUnderTest, "dappsListPopup")
verify(!!dappListPopup)
dappListPopup.connectDapp()
waitForRendering(controlUnderTest)
waitForItemPolished(controlUnderTest)
const connectorButton = findChild(controlUnderTest, "btnStatusConnector")
const wcButton = findChild(controlUnderTest, "btnWalletConnect")
verify(!!connectorButton)
verify(!!wcButton)
compare(controlUnderTest.walletConnectEnabled, true)
compare(controlUnderTest.connectorEnabled, true)
controlUnderTest.walletConnectEnabled = false
compare(wcButton.enabled, false)
controlUnderTest.walletConnectEnabled = true
compare(wcButton.enabled, true)
controlUnderTest.connectorEnabled = false
compare(connectorButton.enabled, false)
controlUnderTest.connectorEnabled = true
compare(connectorButton.enabled, true)
}
}
}