From 50ef2c1871e9665008081b937246b47996525806 Mon Sep 17 00:00:00 2001 From: Damien Cassou Date: Tue, 16 Mar 2021 22:02:19 +0100 Subject: Add initial buttercup test * tests/nroam-test.el: new file. Add initial buttercup test and supporting macro. * Makefile: Add buttercup and its dependencies to the list of dependencies. --- Makefile | 3 ++- tests/nroam-test.el | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 tests/nroam-test.el diff --git a/Makefile b/Makefile index a0ab377..0de1540 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,11 @@ # that is more recent than the one provided by Emacs 27.1. Because # makel will refuse to install org because it is built into Emacs, we # force a newer version by asking org-plus-contrib instead. -ELPA_DEPENDENCIES=package-lint org-plus-contrib org-roam +ELPA_DEPENDENCIES=package-lint org-plus-contrib org-roam buttercup f s ELPA_ARCHIVES=melpa org +TEST_BUTTERCUP_OPTIONS=tests LINT_CHECKDOC_FILES=$(wildcard *.el) LINT_PACKAGE_LINT_FILES=nroam.el LINT_COMPILE_FILES=$(wildcard *.el) diff --git a/tests/nroam-test.el b/tests/nroam-test.el new file mode 100644 index 0000000..63e5b8a --- /dev/null +++ b/tests/nroam-test.el @@ -0,0 +1,54 @@ +;;; nroam-test.el --- Tests for nroam -*- lexical-binding: t; -*- + +;; Copyright (C) 2021 Damien Cassou + +;; Author: Damien Cassou + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; Tests for nroam. + +;;; Code: + +(require 'buttercup) +(require 'nroam) + +(defmacro nroam-test-with-temp-file-buffer (&rest body) + "Execute BODY within a temporary buffer backed by a temporary file. +Execute BODY and cleanup the file and buffer after that." + (declare (debug t)) + (let ((filename-var (make-symbol "filename"))) + `(let ((,filename-var (make-temp-file "nroam-test-"))) + (unwind-protect + (with-current-buffer (find-file ,filename-var) + ,@body) + (delete-file ,filename-var))))) + +(nroam-test-with-temp-file-buffer (insert "foo")) + +(describe "nroam" + (describe "nroam-more" + (it "creates nroam sections immediately" + (nroam-test-with-temp-file-buffer + (insert "#+title: my notes\n") + (nroam-mode) + (setf (point) (point-min)) + (let ((section-position (re-search-forward "^* Backlinks" nil t))) + (expect section-position :not :to-be nil) + (expect section-position :to-be-greater-than 10)))))) + +(provide 'nroam-test) +;;; nroam-test.el ends here -- cgit v1.2.3-54-g00ecf