You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
1.7 KiB

;;; test-webpaste-paste-text.el --- Tests for webpaste
;;; Commentary:
;;; Code:
(load "tests/load-undercover.el")
(require 'webpaste)
(describe
"Paste text to provider"
:var (webpaste-tested-providers)
(before-each
;; Override which fake providers exists
(spy-on 'webpaste--get-provider-priority
:and-return-value
'("provider1" "provider2"))
;; Don't allow it to try to paste, just fake it
(spy-on 'webpaste--paste-text-to-provider)
;; And let tested list be resetted for each test
(setq webpaste-tested-providers nil))
(it
"can paste text to provider and try second provider if called again"
;; Let's paste to first provider
(webpaste--paste-text "my test text")
;; And check it was to first provider
(expect 'webpaste--paste-text-to-provider
:to-have-been-called-with
"my test text"
"provider1")
;; Let's paste to second provider
(webpaste--paste-text "my test text")
;; And check it was to second provider
(expect 'webpaste--paste-text-to-provider
:to-have-been-called-with
"my test text"
"provider2")
;; Check that the tested list is empty so another run would restart
(expect webpaste-tested-providers :to-equal nil)))
(xdescribe
"Run provider lambda to paste text"
(before-each
(let ((wp-lambda (lambda (text) text)))
(setq webpaste-providers-alist `(("provider1" ,wp-lambda)
("provider2" ,wp-lambda)))))
(it
"can get the lambda for the specified provider and run it"
(expect (webpaste--paste-text-to-provider "my test text" "provider2")
:to-equal
"my test text")))
;;; test-webpaste-paste-text.el ends here