Add Handbook.md benchmark tasks
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from starlette.testclient import TestClient
|
||||
|
||||
from shopify import state as shopify_state
|
||||
from shopify.viewer import create_shopify_viewer_app
|
||||
|
||||
|
||||
def test_products_api_handles_strict_state_models_with_omitted_optional_fields() -> None:
|
||||
shopify_state.state_from_json(
|
||||
{
|
||||
"products": {
|
||||
"product-1": {
|
||||
"id": "product-1",
|
||||
"title": "Test Product",
|
||||
"variants": [
|
||||
{
|
||||
"id": "variant-1",
|
||||
"title": "Default",
|
||||
"price": {"amount": "10.00", "currencyCode": "USD"},
|
||||
}
|
||||
],
|
||||
}
|
||||
},
|
||||
"carts": {},
|
||||
"policies": [],
|
||||
"faqs": [],
|
||||
}
|
||||
)
|
||||
|
||||
client = TestClient(create_shopify_viewer_app(), raise_server_exceptions=False)
|
||||
response = client.get("/api/products")
|
||||
|
||||
assert response.status_code == 200
|
||||
payload = response.json()
|
||||
assert payload["total"] == 1
|
||||
assert payload["products"][0]["id"] == "product-1"
|
||||
assert payload["products"][0]["price"] is None
|
||||
|
||||
|
||||
def test_policies_and_cart_detail_api_serialize_strict_state_models() -> None:
|
||||
shopify_state.state_from_json(
|
||||
{
|
||||
"products": {},
|
||||
"carts": {
|
||||
"cart-1": {
|
||||
"id": "cart-1",
|
||||
"totalQuantity": 0,
|
||||
"note": "Viewer smoke cart",
|
||||
}
|
||||
},
|
||||
"policies": [
|
||||
{
|
||||
"type": "REFUND_POLICY",
|
||||
"title": "Refund Policy",
|
||||
"body": "Returns accepted within 30 days.",
|
||||
}
|
||||
],
|
||||
"faqs": [],
|
||||
}
|
||||
)
|
||||
|
||||
client = TestClient(create_shopify_viewer_app(), raise_server_exceptions=False)
|
||||
|
||||
policies_response = client.get("/api/policies")
|
||||
assert policies_response.status_code == 200
|
||||
assert policies_response.json()["policies"][0]["title"] == "Refund Policy"
|
||||
|
||||
cart_response = client.get("/api/carts/cart-1")
|
||||
assert cart_response.status_code == 200
|
||||
assert cart_response.json()["cart"]["note"] == "Viewer smoke cart"
|
||||
Reference in New Issue
Block a user