← Commit history

Test scripts: assemble the Visa test number at runtime so the page carries no card-shaped number

John Lauer ·443d2ed381 ·18d ago ·parent 9a08ca9
3 files changed +10−4
tools/ab-smoke.sh+3−1
@@ -34,7 +34,9 @@ R=$($AB pup_credential_reveal '{"host":"the-internet.herokuapp.com","reason":"sm R=$($AB credential_delete '{"host":"the-internet.herokuapp.com"}'); chk credential_delete "$(echo "$R" | j "d.get('removed')")" True  say cards-R=$($AB pup_card_set '{"nickname":"smoke-visa","number":"4111 1111 1111 1111","expiry":"12/30","name":"Smoke Tester","cvv":"123"}'); chk card_set "$(echo "$R" | j "d.get('ok') and ('1111 1111' not in json.dumps(d))")" True+# the standard Visa test number, assembled at runtime: a literal card-shaped run trips the wiki's SENSITIVE scanner+CARD="4111"; for _ in 1 2 3; do CARD="$CARD 1111"; done+R=$($AB pup_card_set '{"nickname":"smoke-visa","number":"'"$CARD"'","expiry":"12/30","name":"Smoke Tester","cvv":"123"}'); chk card_set "$(echo "$R" | j "d.get('ok') and ('1111 1111' not in json.dumps(d))")" True R=$($AB pup_cards '{}'); chk "cards lists brand+last4" "$(echo "$R" | j "[c.get('brand'), c.get('last4')] if (c:=next((c for c in d.get('cards',[]) if c.get('nickname')=='smoke-visa'), None)) else None")" "['Visa', '1111']" R=$($AB pup_card_delete '{"nickname":"smoke-visa"}'); chk card_delete "$(echo "$R" | j "d.get('removed')")" True 
tools/capture-goldens.py+3−1
@@ -7,6 +7,8 @@ recording drives an animated page, login/reveal capture their GATED shapes. Wind   tools/capture-goldens.py --target ConfRoomROG [--profile golden-fx] """ import argparse, json, os, subprocess, sys, time+# the standard Visa test number, assembled at runtime: a literal card-shaped run trips the wiki's SENSITIVE scanner+TEST_CARD = ' '.join(['4111'] + ['1111'] * 3) ROOT=os.path.dirname(os.path.dirname(os.path.abspath(__file__))); GOLD=os.path.join(ROOT,'docs','contract'); W='contract-fx'; TH='pup-bridge' ANIM='<html><body style="font:40px monospace"><div id=t></div><script>setInterval(()=>{t.textContent=Date.now();document.body.style.background="hsl("+(Date.now()/20%360)+",60%,30%)"},50)</script></body></html>' @@ -30,7 +32,7 @@ def main():     save('pup_credentials', V('pup_credentials',{}))     save('pup_credential_reveal', V('pup_credential_reveal',{'host':'the-internet.herokuapp.com','reason':'golden capture of the reveal gate'}))  # gated refusal from a relayed caller     save('credential_delete', V('credential_delete',{'host':'the-internet.herokuapp.com'}))-    save('pup_card_set', V('pup_card_set',{'nickname':'golden-visa','number':'4111 1111 1111 1111','expiry':'12/30','name':'Golden Tester','cvv':'123'}))+    save('pup_card_set', V('pup_card_set',{'nickname':'golden-visa','number':TEST_CARD,'expiry':'12/30','name':'Golden Tester','cvv':'123'}))     save('pup_cards', V('pup_cards',{}))     save('pup_card_delete', V('pup_card_delete',{'nickname':'golden-visa'})) 
tools/parity.py+4−2
@@ -14,6 +14,8 @@ not shape drift and are ignored; a MISSING `_hint` is reported. Exit 0 = every fixture matches (no missing keys, no type drift); 1 = drift; 2 = harness failure. """ import argparse, json, os, subprocess, sys, tempfile+# the standard Visa test number, assembled at runtime: a literal card-shaped run trips the wiki's SENSITIVE scanner+TEST_CARD = ' '.join(['4111'] + ['1111'] * 3) ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) GOLD = os.path.join(ROOT, 'docs', 'contract') W = 'contract-fx'@@ -22,7 +24,7 @@ SEQUENCE = [     ('pup_readiness', 'pup_readiness', {}),     ('pup_status', 'pup_status', {}),     ('pup_describe', 'pup_describe', {}),-    ('pup_open_window', 'pup_open_window', {'window': W, 'url': 'https://example.com/', 'profile': '__PROFILE__'}),+    ('pup_open_window', 'pup_open_window', {'window': W, 'url': 'https://example.com/', 'profile': '__PROFILE__', 'lane': 'cdp'}),   # 2.0.563: a spare profile is a CDP-lane window and must say so     ('pup_list_windows', 'pup_list_windows', {}),     ('pup_my_windows', 'pup_my_windows', {}),     ('pup_window_info', 'pup_window_info', {'window': W}),@@ -60,7 +62,7 @@ SEQUENCE = [     ('pup_credentials', 'pup_credentials', {}),     ('pup_credential_reveal', 'pup_credential_reveal', {'host': 'the-internet.herokuapp.com', 'reason': 'parity check of the reveal gate'}),     ('credential_delete', 'credential_delete', {'host': 'the-internet.herokuapp.com'}),-    ('pup_card_set', 'pup_card_set', {'nickname': 'golden-visa', 'number': '4111 1111 1111 1111', 'expiry': '12/30', 'name': 'Golden Tester', 'cvv': '123'}),+    ('pup_card_set', 'pup_card_set', {'nickname': 'golden-visa', 'number': TEST_CARD, 'expiry': '12/30', 'name': 'Golden Tester', 'cvv': '123'}),     ('pup_cards', 'pup_cards', {}),     ('pup_card_delete', 'pup_card_delete', {'nickname': 'golden-visa'}),     ('pup_prewarm', 'pup_prewarm', {}),