emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/webpaste 87cee69 081/298: Added test for failover to the s


From: ELPA Syncer
Subject: [nongnu] elpa/webpaste 87cee69 081/298: Added test for failover to the second provider and not random
Date: Thu, 9 Dec 2021 18:59:49 -0500 (EST)

branch: elpa/webpaste
commit 87cee69fe8f65f7dfc6d3192cdf24484941eeaa3
Author: Elis Axelsson <elis.axelsson@gmail.com>
Commit: Elis Axelsson <elis.axelsson@gmail.com>

    Added test for failover to the second provider and not random
---
 test/webpaste-test.el | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/test/webpaste-test.el b/test/webpaste-test.el
index c677cf9..986589c 100644
--- a/test/webpaste-test.el
+++ b/test/webpaste-test.el
@@ -29,5 +29,57 @@
     (should (string= returned-result "Works: test-string"))))
 
 
+(ert-deftest callback-from-working-provider-as-fallback ()
+  "This test sends a message to a bad provider that returns some error data.
+
+Then the bad provider pastes again like it should and we check that we got the
+result from the good provider only."
+
+  ;; Temporal storage for result
+  (let ((returned-result nil))
+    ;; Reset all webpaste variables
+    (setq-default webpaste-tested-providers nil)
+    (setq-default webpaste-provider-priority nil)
+
+    ;; Make two broken providers that "returns" the result by setting the
+    ;; variable and then failover.
+    ;; Also make two working providers that returns different messages so the
+    ;; test can detect which provider was used easily.
+    (setq-default webpaste-providers-alist
+                  (list (list "brokenprovider1"
+                              (lambda (text)
+                                ;; Set return text
+                                (setq returned-result
+                                      (concat "Broken1: " text))
+
+                                ;; Call paste again
+                                (webpaste-paste-text text)))
+
+                        (list "workingprovider1"
+                              (lambda (text)
+                                (setq returned-result
+                                      (concat "Works1: " text))))
+
+                        (list "workingprovider2"
+                              (lambda (text)
+                                (setq returned-result
+                                      (concat "Works2: " text))))
+
+                        (list "brokenprovider2"
+                              (lambda (text)
+                                ;; Set return text
+                                (setq returned-result
+                                      (concat "Broken2: " text))
+
+                                ;; Call paste again
+                                (webpaste-paste-text text)))))
+
+    ;; Call webpaste
+    (webpaste-paste-text "test-string")
+
+    ;; Check that we got the expected result
+    (should (string= returned-result "Works1: test-string"))))
+
+
 (provide 'webpaste-test)
 ;;; webpaste-test.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]