From dd9292257cec482657629d7e15ba558f14b37ecd Mon Sep 17 00:00:00 2001 From: Lee Hinman Date: Mon, 18 Jul 2016 21:56:13 -0600 Subject: [PATCH] Add a test framework and the first test for parsing the request error --- .gitignore | 2 ++ .travis.yml | 18 +++++++++++++++++ Cask | 12 +++++++++++ Makefile | 15 ++++++++++++++ test/matrix-client-test.el | 19 ++++++++++++++++++ test/test-helper.el | 41 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 107 insertions(+) create mode 100644 .travis.yml create mode 100644 Cask create mode 100644 Makefile create mode 100644 test/matrix-client-test.el create mode 100644 test/test-helper.el diff --git a/.gitignore b/.gitignore index c531d98..8131315 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *.elc +.ert-runner +.cask diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..21d6c12 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,18 @@ +language: generic +sudo: false +before_install: + - curl -fsSkL https://gist.github.com/rejeep/ebcd57c3af83b049833b/raw > x.sh && source ./x.sh + - evm install $EVM_EMACS --use --skip + - cask +env: + - EVM_EMACS=emacs-24.1-travis + - EVM_EMACS=emacs-24.2-travis + - EVM_EMACS=emacs-24.3-travis + - EVM_EMACS=emacs-24.4-travis + - EVM_EMACS=emacs-24.5-travis +script: + - emacs --version + - make test + +notifications: + email: false \ No newline at end of file diff --git a/Cask b/Cask new file mode 100644 index 0000000..8b2411e --- /dev/null +++ b/Cask @@ -0,0 +1,12 @@ +(source gnu) +(source melpa) + +(files "*.el") + +(development + (depends-on "f") + (depends-on "ecukes") + (depends-on "ert-runner") + (depends-on "el-mock") + (depends-on "request") + (depends-on "cask-package-toolset")) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..430a567 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +CASK ?= cask +EMACS ?= emacs + +all: test + +test: unit #ecukes + +unit: + ${CASK} exec ert-runner + +ecukes: + ${CASK} exec ecukes + +install: + ${CASK} install diff --git a/test/matrix-client-test.el b/test/matrix-client-test.el new file mode 100644 index 0000000..46a94cf --- /dev/null +++ b/test/matrix-client-test.el @@ -0,0 +1,19 @@ +;;; Test for `matrix-client' + +;;; Commentary: +;; These are the tests for `matrix-client' + +;;; Code: + +(require 'matrix-helpers) + +(ert-deftest matrix-parse-curl () + (should + (eq 51 + (matrix-parse-curl-exit-code "exited abnormally with code 51"))) + (should + (eq 60 + (matrix-parse-curl-exit-code "exited abnormally with code 60"))) + (should + (eq nil + (matrix-parse-curl-exit-code "bagels and beans")))) diff --git a/test/test-helper.el b/test/test-helper.el new file mode 100644 index 0000000..7ca4639 --- /dev/null +++ b/test/test-helper.el @@ -0,0 +1,41 @@ +;;; test-helper --- Test helper for matrix-client + +;;; Commentary: +;; test helper inspired from https://github.com/tonini/overseer.el/blob/master/test/test-helper.el + +;;; Code: + +(require 'f) + +(defvar cpt-path + (f-parent (f-this-file))) + +(defvar matrix-client-test-path + (f-dirname (f-this-file))) + +(defvar matrix-client-root-path + (f-parent matrix-client-test-path)) + +(defvar matrix-client-sandbox-path + (f-expand "sandbox" matrix-client-test-path)) + +(when (f-exists? matrix-client-sandbox-path) + (error "Something is already in %s. Check and destroy it yourself" matrix-client-sandbox-path)) + +(defmacro within-sandbox (&rest body) + "Evaluate BODY in an empty sandbox directory." + `(let ((default-directory matrix-client-sandbox-path)) + (when (f-exists? matrix-client-sandbox-path) + (f-delete default-directory :force)) + (f-mkdir matrix-client-sandbox-path) + ,@body + (f-delete default-directory :force))) + +(require 'ert) +(require 'el-mock) +(eval-when-compile + (require 'cl)) +(require 'matrix-client) + +(provide 'test-helper) +;;; test-helper.el ends here