aboutsummaryrefslogtreecommitdiff
path: root/test/03-api/03-fields/files.janet
diff options
context:
space:
mode:
Diffstat (limited to 'test/03-api/03-fields/files.janet')
-rw-r--r--test/03-api/03-fields/files.janet44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/03-api/03-fields/files.janet b/test/03-api/03-fields/files.janet
new file mode 100644
index 0000000..ea015d2
--- /dev/null
+++ b/test/03-api/03-fields/files.janet
@@ -0,0 +1,44 @@
+(use ../../../jurl)
+(import spork/json)
+
+(def fone "file 1")
+(def ftwo "file 2")
+
+# POST
+(def one (->> "https://pie.dev/post"
+ (http :post)
+ # the way to do file uploads in post is with mime/multipart
+ (body [{:name "one"
+ :data fone
+ :filename "remote.file"}
+ {:name "two"
+ :data ftwo
+ :filename "other.remote"}])))
+(def two (->> one
+ # multipart mimes come as a bundle, so this overwrites
+ (body [{:name "one"
+ :data fone
+ :filename "remote.file"}])))
+
+(def rone (one))
+(assert (= 200 (rone :status)))
+
+(def rtwo (two))
+(assert (= 200 (rtwo :status)))
+
+(def jone ((json/decode (rone :body) true) :files))
+(def jtwo ((json/decode (rtwo :body) true) :files))
+
+(assert (= fone (jone :one)))
+(assert (= ftwo (jone :two)))
+(assert (= fone (jtwo :one)))
+(assert (= :nothing (get jtwo :two :nothing)))
+
+# PUT
+(def pst (->> "https://pie.dev/put"
+ (http :put)
+ (body-plain fone)))
+(def rpst (pst))
+(assert (= 200 (rpst :status)))
+(def jpst (json/decode (rpst :body) true))
+(assert (= fone (jpst :data)))