===
start a fresh session for pre-navigation cookie tests
%require
===
plwr -S plwr-cookie-test start
---
Started session 'plwr-cookie-test'

===
cookie without --url and no page gives error
===
! plwr -S plwr-cookie-test cookie session abc123
---
No page open and no --url provided. Use --url to specify the cookie domain.

===
set cookie with --url before any page is opened
===
plwr -S plwr-cookie-test cookie pre_auth token123 --url "http://localhost:8599/"
---

===
navigate and verify cookie is present
===
plwr -S plwr-cookie-test open "http://localhost:8599/index.html"
---

===
cookie set before open is accessible from JS
===
plwr -S plwr-cookie-test eval "document.cookie.split('; ').find(c => c.startsWith('pre_auth=')).split('=')[1]"
---
token123

===
stop fresh session
===
plwr -S plwr-cookie-test stop
---
Stopped session 'plwr-cookie-test'

===
navigate to test page
%require
===
plwr -S plwr-test open "http://localhost:8599/index.html"
---

===
set a cookie
===
plwr -S plwr-test cookie session abc123
---

===
set a second cookie
===
plwr -S plwr-test cookie theme dark
---

===
cookies are accessible from JS
===
plwr -S plwr-test eval "document.cookie.split('; ').sort().join('; ')"
---
session=abc123; theme=dark

===
list cookies includes both
===
plwr -S plwr-test cookie --list
---
{{ cookies: json array }}
---
where
* len(cookies) == 2

===
overwrite a cookie
===
plwr -S plwr-test cookie session xyz789
---

===
overwritten cookie has new value
===
plwr -S plwr-test eval "document.cookie.split('; ').find(c => c.startsWith('session=')).split('=')[1]"
---
xyz789

===
clear all cookies
===
plwr -S plwr-test cookie --clear
---

===
cookies are empty after clear
===
plwr -S plwr-test cookie --list
---
[]

===
JS confirms cookies cleared
===
plwr -S plwr-test eval "document.cookie"
---
