mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-23 23:48:56 +01:00
Create khoj.el tests. Test rendering results of each content types
This commit is contained in:
parent
0d0bf3b5aa
commit
be6acda212
1 changed files with 155 additions and 0 deletions
155
src/interface/emacs/tests/khoj-tests.el
Normal file
155
src/interface/emacs/tests/khoj-tests.el
Normal file
|
@ -0,0 +1,155 @@
|
|||
;;; khoj-tests.el --- Test suite for khoj.el -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 2023 Debanjum Singh Solanky
|
||||
|
||||
;; Author: Debanjum Singh Solanky <debanjum@gmail.com>
|
||||
;; Version: 0.0.0
|
||||
;; Package-Requires: ((emacs "27.1") (transient "0.3.0"))
|
||||
;; URL: https://github.com/debanjum/khoj/tree/master/src/interface/emacs
|
||||
|
||||
;;; License:
|
||||
|
||||
;; 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file contains the test suite for khoj.el.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
(require 'khoj)
|
||||
|
||||
|
||||
|
||||
;; ----------------------------------------------------
|
||||
;; Test Extract and Render Entries of each Content Type
|
||||
;; ----------------------------------------------------
|
||||
|
||||
(ert-deftest khoj-tests--extract-entries-as-markdown ()
|
||||
"Test `json-response', `query' from API formatted as markdown."
|
||||
(let ((user-query "Become God")
|
||||
(json-response-from-khoj-backend
|
||||
(json-read-from-string
|
||||
"[\
|
||||
{\
|
||||
\"entry\": \"## Upgrade\\n\\n Penance to Immortality\\n\",\
|
||||
\"score\": \"0.376\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/upgrade.md\",\
|
||||
\"compiled\": \"## Upgrade Penance to Immortality\"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
\"entry\": \"## Act\\n\\n Rule everything\\n\",\
|
||||
\"score\": \"0.153\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/act.md\",\
|
||||
\"compiled\": \"## Act Rule everything\"\
|
||||
}\
|
||||
}]\
|
||||
")))
|
||||
(should
|
||||
(equal
|
||||
(khoj--extract-entries-as-markdown json-response-from-khoj-backend user-query)
|
||||
"\
|
||||
# Become God\n\
|
||||
## Upgrade\n\
|
||||
\n\
|
||||
Penance to Immortality\n\
|
||||
## Act\n\
|
||||
\n\
|
||||
Rule everything\n"))))
|
||||
|
||||
|
||||
(ert-deftest khoj-tests--extract-entries-as-org ()
|
||||
"Test `json-response', `query' from API formatted as org."
|
||||
(let ((user-query "Become God")
|
||||
(json-response-from-khoj-backend
|
||||
(json-read-from-string
|
||||
"[\
|
||||
{\
|
||||
\"entry\": \"** Upgrade\\n\\n Penance to Immortality\\n\",\
|
||||
\"score\": \"0.42\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/upgrade.md\",\
|
||||
\"compiled\": \"** Upgrade Penance to Immortality\"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
\"entry\": \"** Act\\n\\n Rule everything\\n\",\
|
||||
\"score\": \"0.42\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/act.md\",\
|
||||
\"compiled\": \"** Act Rule everything\"\
|
||||
}\
|
||||
}]\
|
||||
")))
|
||||
(should
|
||||
(equal
|
||||
(khoj--extract-entries-as-org json-response-from-khoj-backend user-query)
|
||||
"\
|
||||
* Become God\n\
|
||||
** Upgrade\n\
|
||||
\n\
|
||||
Penance to Immortality\n\
|
||||
** Act\n\
|
||||
\n\
|
||||
Rule everything\n\
|
||||
\n\
|
||||
#+STARTUP: showall hidestars inlineimages"))))
|
||||
|
||||
|
||||
(ert-deftest khoj-tests--extract-entries-as-ledger ()
|
||||
"Test `json-response', `query' from API formatted as beancount ledger."
|
||||
(let ((user-query "Become God")
|
||||
(json-response-from-khoj-backend
|
||||
(json-read-from-string
|
||||
"[\
|
||||
{\
|
||||
\"entry\": \"4242-04-01 * \\\"Penance Center\\\" \\\"Book Stay for 10,000 Years\\\"\\n Expenses:Health:Mental 15 GOLD\\n Assets:Commodities:Gold\",\
|
||||
\"score\": \"0.42\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/ledger.beancount\",\
|
||||
\"compiled\": \"4242-04-01 * \\\"Penance Center\\\" \\\"Book Stay for 10,000 Years\\\" Expenses:Health:Mental 15 GOLD Assets:Commodities:Gold\"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
\"entry\": \"14242-04-01 * \\\"Brahma\\\" \\\"Boon for Invincibility from Higher Beings\\\"\\n Income:Health -1,00,00,000 LIFE\\n Assets:Commodities:Life\",\
|
||||
\"score\": \"0.42\",\
|
||||
\"additional\": {\
|
||||
\"file\": \"/home/ravan/ledger.beancount\",\
|
||||
\"compiled\": \"4242-04-01 * \\\"Brahma\\\" \\\"Boon for Invincibility from Higher Beings\\\" Income:Health -1,00,00,000 LIFE Assets:Commodities:Life\"\
|
||||
}\
|
||||
}]\
|
||||
")))
|
||||
(should
|
||||
(equal
|
||||
(khoj--extract-entries-as-ledger json-response-from-khoj-backend user-query)
|
||||
";; Become God\n\
|
||||
\n\
|
||||
4242-04-01 * \"Penance Center\" \"Book Stay for 10,000 Years\"\n\
|
||||
Expenses:Health:Mental 15 GOLD\n\
|
||||
Assets:Commodities:Gold\n\
|
||||
\n\
|
||||
14242-04-01 * \"Brahma\" \"Boon for Invincibility from Higher Beings\"\n\
|
||||
Income:Health -1,00,00,000 LIFE\n\
|
||||
Assets:Commodities:Life\n\
|
||||
\n\
|
||||
\n\
|
||||
"))))
|
||||
|
||||
(provide 'khoj-tests)
|
||||
|
||||
;;; khoj-tests.el ends here
|
Loading…
Reference in a new issue