fix: 稳定采购地址页面切换 (#221)
This commit is contained in:
@@ -24,11 +24,13 @@ FIXTURES = Path(__file__).parent / "fixtures"
|
||||
class FakeClock:
|
||||
def __init__(self) -> None:
|
||||
self.now = 0.0
|
||||
self.sleeps = []
|
||||
|
||||
def monotonic(self) -> float:
|
||||
return self.now
|
||||
|
||||
def sleep(self, seconds: float) -> None:
|
||||
self.sleeps.append(seconds)
|
||||
self.now += seconds
|
||||
|
||||
|
||||
@@ -952,8 +954,14 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
|
||||
)
|
||||
|
||||
def test_live_adapter_updates_address_and_returns_to_confirmation(self):
|
||||
clock = FakeClock()
|
||||
device = AddressFlowDevice()
|
||||
adapter = self._live_adapter(device, [])
|
||||
adapter = self._live_adapter(
|
||||
device,
|
||||
[],
|
||||
sleeper=clock.sleep,
|
||||
monotonic=clock.monotonic,
|
||||
)
|
||||
adapter.open_goods(GOODS_URL)
|
||||
adapter.select_options(
|
||||
{"color": "黑色", "size": "3XL【140-165斤】"}
|
||||
@@ -970,6 +978,7 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
|
||||
self.assertEqual(state.page_kind, "order_confirmation")
|
||||
self.assertEqual(state.quantity, 1)
|
||||
self.assertEqual(state.price_cent, 503)
|
||||
self.assertEqual(clock.sleeps.count(1.0), 5)
|
||||
adapter.close()
|
||||
|
||||
def test_multiple_addresses_modify_only_default_card(self):
|
||||
@@ -1243,8 +1252,14 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
|
||||
adapter.close()
|
||||
|
||||
def test_persistent_coloros_overlay_is_dismissed_with_one_system_back(self):
|
||||
clock = FakeClock()
|
||||
device = AddressSaveOverlayDevice()
|
||||
adapter = self._live_adapter(device, [])
|
||||
adapter = self._live_adapter(
|
||||
device,
|
||||
[],
|
||||
sleeper=clock.sleep,
|
||||
monotonic=clock.monotonic,
|
||||
)
|
||||
adapter.open_goods(GOODS_URL)
|
||||
adapter.select_options(
|
||||
{"color": "黑色", "size": "3XL【140-165斤】"}
|
||||
@@ -1255,6 +1270,7 @@ class U2PddPurchaseAdapterTest(unittest.TestCase):
|
||||
self.assertEqual(device.save_clicks, 1)
|
||||
self.assertEqual(device.presses, ["back"])
|
||||
self.assertEqual(device.mode, "panel")
|
||||
self.assertEqual(clock.sleeps.count(1.0), 6)
|
||||
adapter.close()
|
||||
|
||||
def test_coloros_overlay_is_never_dismissed_more_than_once(self):
|
||||
|
||||
Reference in New Issue
Block a user