From ee2b0aecc8c6af8b8ffb5e8ff3f64408a5cb8e6e Mon Sep 17 00:00:00 2001 From: Ophir LOJKINE Date: Tue, 2 Jun 2026 12:08:51 +0200 Subject: [PATCH] Add gallery test and fix nginx socket --- .../image gallery with user uploads/test.hurl | 62 ++++++++++++++++++- examples/nginx/docker-compose.yml | 11 +++- 2 files changed, 71 insertions(+), 2 deletions(-) mode change 120000 => 100644 examples/image gallery with user uploads/test.hurl diff --git a/examples/image gallery with user uploads/test.hurl b/examples/image gallery with user uploads/test.hurl deleted file mode 120000 index 0dd017b9..00000000 --- a/examples/image gallery with user uploads/test.hurl +++ /dev/null @@ -1 +0,0 @@ -../../test.hurl \ No newline at end of file diff --git a/examples/image gallery with user uploads/test.hurl b/examples/image gallery with user uploads/test.hurl new file mode 100644 index 00000000..5950187a --- /dev/null +++ b/examples/image gallery with user uploads/test.hurl @@ -0,0 +1,61 @@ +# Public gallery is reachable without a session. +GET http://localhost:8080 +HTTP 200 +[Asserts] +header "Content-Type" contains "text/html" +body contains "My image gallery" +body contains "Your gallery is empty" +body contains "Upload a new image" +body not contains "An error occurred" + +# Upload form is protected. +GET http://localhost:8080/upload_form.sql +HTTP 302 +[Asserts] +header "Location" == "/login.sql" + +GET http://localhost:8080/login.sql +HTTP 200 +[Asserts] +body contains "Login" +body contains "Username" +body contains "Password" +body not contains "An error occurred" + +# Demo credentials from the example migration: admin/admin. +POST http://localhost:8080/create_session.sql +[Form] +Username: admin +Password: admin +HTTP 302 +[Asserts] +header "Set-Cookie" contains "session_token=" +header "Location" == "/" + +# Hurl's cookie store reuses the session_token set above. +GET http://localhost:8080/upload_form.sql +HTTP 200 +[Asserts] +body contains "Upload a new image" +body contains "Title" +body contains "Description" +body contains "Image" +body not contains "An error occurred" + +POST http://localhost:8080/upload.sql +[Multipart] +Title: Hurl test image +Description: Uploaded by Hurl +Image: file,screenshots/upload.png; image/png +HTTP 302 +[Asserts] +header "Location" matches "^/\\?created_id=\\d+$" + +GET http://localhost:8080{{location}} +HTTP 200 +[Asserts] +body contains "Hurl test image" +body contains "Uploaded by Hurl" +body contains "/images/" +body not contains "Your gallery is empty" +body not contains "An error occurred" diff --git a/examples/nginx/docker-compose.yml b/examples/nginx/docker-compose.yml index 60861e32..a506a095 100644 --- a/examples/nginx/docker-compose.yml +++ b/examples/nginx/docker-compose.yml @@ -1,4 +1,10 @@ services: + init-sqlpage-socket: + image: alpine + volumes: + - sqlpage_socket:/tmp/sqlpage + command: ["chown", "1000:1000", "/tmp/sqlpage"] + sqlpage: image: lovasoa/sqlpage:main volumes: @@ -9,7 +15,10 @@ services: - DATABASE_URL=mysql://sqlpage:sqlpage_password@mysql:3306/sqlpage_db - SQLPAGE_UNIX_SOCKET=/tmp/sqlpage/sqlpage.sock depends_on: - - mysql + init-sqlpage-socket: + condition: service_completed_successfully + mysql: + condition: service_started nginx: image: nginx:alpine