/restclient-test.el

Turn your restclient.el documents into interactive test suites

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

restclient-test.el

restclient-test.el helps you turn restclient.el documents into interactive test suites.

Its functionality is captured by the following animation:

./example.gif

Usage

A restclient.el query can be turned into a test by adding a comment line starting with Expect: somewhere before the query, followed by the expected status code. Currently only status code testing is supported.

The test passes if the expected status code is a substring of the status code from running the query. So Expect: HTTP/1.1 200 OK, Expect: 200 OK, Expect: 200, and Expect: OK would all match an HTTP/1.1 200 OK response.

A full example is shown below (more examples can be found in example.http).

# Expect: 200 OK
GET http://httpbin.org/get

Running M-x restclient-test-current with point inside the query updates the buffer with the results of the test:

# Expect: 200 OK
# Response: HTTP/1.1 200 OK
# Result: Passed
GET http://httpbin.org/get

Running M-x restclient-test-buffer runs every test found in the current buffer and displays a summary of the test results in the echo area.

M-x flymake-goto-next-error and M-x flymake-goto-prev-error can be used to quickly jump between failed tests when flymake-mode is turned on.

restclient-test-mode

restclient-test-mode is a minor mode that sets up key-bindings for the commands provided by restclient-test.el.

To make restclient-test-mode activate automatically when restclient-mode is activated, add the following to your initialization file:

(add-hook 'restclient-mode-hook #'restclient-test-mode)

And to turn on Flymake automatically for restclient-test-mode buffers:

(add-hook 'restclient-test-mode-hook #'flymake-mode)

The following table summarizes the key-bindings set up by restclient-test-mode.

Key bindingCommand
C-c C-brestclient-test-buffer
C-c C-trestclient-test-current