summaryrefslogtreecommitdiff
path: root/gnu/tests/web.scm
diff options
context:
space:
mode:
authorSören Tempel <soeren+git@soeren-tempel.net>2025-12-30 16:08:16 +0100
committerSören Tempel <soeren+git@soeren-tempel.net>2026-03-29 14:12:56 +0200
commit3f3cec89932673f1d0b039bef469f14ce2f0cbcd (patch)
tree12a9fac4bd42842cfcf9456a01f04b27432b22b9 /gnu/tests/web.scm
parent829b7e108de9b47bc7b70bdd021fd9ca8d799e51 (diff)
services: web: Add sogogi service.
* gnu/services/web.scm (sogogi-service-type): New services. (sogogi-serialize-section, sogogi-serialize-field) (sogogi-serialize-string, sogogi-serialize-list-of-strings) (sogogi-serialize-sogogi-user, sogogi-serialize-sogogi-location) (sogogi-serialize-list-of-sogogi-user): New procedures. (sogogi-user, sogogi-location) (sogogi-configuration): New record types. (sogogi-account-service): New variable. (sogogi-config-file, sogogi-shepherd-service): New procedures. * gnu/tests/web.scm (%test-sogogi): Add tests for the service. * doc/guix.texi (Web Services): Document it. Change-Id: I5cc6dd84d6c7c8d5d13b685853b19c5d433ed7e5
Diffstat (limited to 'gnu/tests/web.scm')
-rw-r--r--gnu/tests/web.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm
index 5c8905f62b8..b06cbcec115 100644
--- a/gnu/tests/web.scm
+++ b/gnu/tests/web.scm
@@ -60,6 +60,7 @@
%test-anonip
%test-go-webdav
%test-patchwork
+ %test-sogogi
%test-agate
%test-miniflux-admin-string
%test-miniflux-admin-file
@@ -782,6 +783,55 @@ HTTP-PORT."
;;;
+;;; sogogi
+;;;
+
+(define %sogogi-os
+ (simple-operating-system
+ (service dhcpcd-service-type)
+ (simple-service 'make-http-root activation-service-type
+ %make-http-root)
+ (service sogogi-service-type
+ (sogogi-configuration
+ (listen ":8080")
+ (user
+ (list
+ (sogogi-user
+ (name "testuser")
+ (password "testpass"))))
+ (location
+ (list
+ (sogogi-location
+ (path "/")
+ (dir "/srv/http/")
+ (grant '("all ro" "user:testuser rw")))))))))
+
+(define %test-sogogi
+ (system-test
+ (name "sogogi")
+ (description "Test that the sogogi can handle HTTP requests.")
+ (value
+ (let ((http-port 8080))
+ (run-webserver-test name %sogogi-os
+ #:http-port http-port
+ #:extra-tests
+ #~(begin
+ (use-modules (srfi srfi-11) (srfi srfi-64)
+ (gnu build marionette)
+ (web uri)
+ (web client)
+ (web response))
+
+ (test-equal "unauthenticated delete"
+ 401
+ (let-values
+ (((response _)
+ (http-delete #$(simple-format
+ #f "http://localhost:~A/index.html" http-port))))
+ (response-code response)))))))))
+
+
+;;;
;;; Agate
;;;