Files
divkit/client/ios/DivKitTests/Extensions/DivTooltipExtensionsTests.swift
booster b489b36d92 Fixed file path in precommit hook
commit_hash:f7df7bc7f68f49dd4b005691712d8784e092107e
2025-07-17 17:28:31 +03:00

119 lines
3.0 KiB
Swift

@testable import DivKit
import DivKitTestsSupport
@testable import LayoutKit
import VGSL
import XCTest
final class DivTooltipExtensionsTests: XCTestCase {
func test_SimpleTooltip() {
let block = makeBlock(
divSeparator(
tooltips: [
DivTooltip(
div: divContainer(),
duration: .value(1000),
id: "tooltip1",
offset: point(x: 10, y: 20),
position: .value(.center)
),
]
)
)
let expectedBlock = try! StateBlock(
child: DecoratingBlock(
child: SeparatorBlock(
color: color("#14000000")
),
tooltips: [
BlockTooltip(
block: DecoratingBlock(
child: ContainerBlock(
layoutDirection: .vertical,
children: [],
path: UIElementPath("test_card_id") + "tooltip1" + "container"
),
accessibilityElement: .default
),
params: BlockTooltipParams(
id: "tooltip1",
mode: .modal,
duration: TimeInterval(milliseconds: 1000),
closeByTapOutside: true,
tapOutsideActions: []
),
offset: CGPoint(x: 10, y: 20),
position: .center,
useLegacyWidth: false
),
],
accessibilityElement: .default
),
ids: []
)
assertEqual(block, expectedBlock)
}
func test_NestedTooltip_IsIgnored() {
let context = DivBlockModelingContext()
let block = makeBlock(
divSeparator(
tooltips: [
DivTooltip(
div: divSeparator(
tooltips: [
DivTooltip(
div: divContainer(),
id: "nested_tooltip",
position: .value(.center)
),
]
),
id: "tooltip1",
position: .value(.center)
),
]
),
context: context,
ignoreErrors: true
)
let expectedBlock = StateBlock(
child: DecoratingBlock(
child: SeparatorBlock(
color: color("#14000000")
),
tooltips: [
BlockTooltip(
block: DecoratingBlock(
child: SeparatorBlock(
color: color("#14000000")
),
accessibilityElement: .default
),
params: BlockTooltipParams(
id: "tooltip1",
mode: .modal,
duration: TimeInterval(milliseconds: 5000),
closeByTapOutside: true
),
offset: CGPoint(x: 0, y: 0),
position: .center,
useLegacyWidth: false
),
],
accessibilityElement: .default
),
ids: []
)
assertEqual(block, expectedBlock)
let errors = context.errorsStorage.errors
XCTAssertEqual(1, errors.count)
XCTAssertEqual("Tooltip can not host another tooltips", errors.first?.message)
}
}