diff --git a/justfile b/justfile index fca8719..9b78d17 100644 --- a/justfile +++ b/justfile @@ -12,3 +12,7 @@ build: test: eask compile eask emacs --batch -L . -L test -l test/all-tests.el -f ert-run-tests-batch-and-exit + +test-one TEST_NAME: + eask compile + eask emacs --batch -L . -L test -l test/all-tests.el -eval '(ert-run-tests-batch-and-exit "{{TEST_NAME}}")' diff --git a/rustic-babel.el b/rustic-babel.el index a9e4578..d8ac215 100644 --- a/rustic-babel.el +++ b/rustic-babel.el @@ -287,7 +287,7 @@ Use VERSION, FEATURES and PATH." (cdr crate-and-version) "*")) (features (cdr (assoc name crate-features))) - (path (cdr (assoc name crate-paths)))) + (path (cadr (assoc name crate-paths)))) ;; make sure it works with symbols and strings (when (symbolp name) diff --git a/test/rustic-babel-test.el b/test/rustic-babel-test.el index 43d75b5..027cfe8 100644 --- a/test/rustic-babel-test.el +++ b/test/rustic-babel-test.el @@ -295,4 +295,22 @@ (rustic-test-babel-execute-block buf) (should (string-equal (rustic-test-babel-check-results buf) "[[\"A\", \"B\"], [\"C\", \"D\"]]\n"))))) +(ert-deftest rustic-test-babel-block-with-paths () + (let* ((current-test-dir (or (and load-file-name (file-name-directory load-file-name)) + (and buffer-file-name (file-name-directory buffer-file-name)) + default-directory)) ; Fallback to `default-directory` + (string "use foo; + use bar; + fn main() { + foo::foo(); + bar::bar(); + }") + (params (format ":paths '((foo \"%s/test-project/crates/foo\") (bar \"%s/test-project/crates/bar\")) :crates '((foo . 0.0.1) (bar . 0.0.1))" + (expand-file-name "test" current-test-dir) (expand-file-name "test" current-test-dir))) + (buf (rustic-test-get-babel-block string params))) + (with-current-buffer buf + (rustic-test-babel-execute-block buf) + (should (eq (rustic-test-babel-check-results buf) nil))))) + + (provide 'rustic-babel-test) diff --git a/test/test-project/crates/bar/Cargo.toml b/test/test-project/crates/bar/Cargo.toml new file mode 100644 index 0000000..3d03a67 --- /dev/null +++ b/test/test-project/crates/bar/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "bar" +version = "0.0.1" diff --git a/test/test-project/crates/bar/src/lib.rs b/test/test-project/crates/bar/src/lib.rs new file mode 100644 index 0000000..9966d9c --- /dev/null +++ b/test/test-project/crates/bar/src/lib.rs @@ -0,0 +1,3 @@ +pub fn bar() { + () +} diff --git a/test/test-project/crates/foo/Cargo.toml b/test/test-project/crates/foo/Cargo.toml new file mode 100644 index 0000000..87cba03 --- /dev/null +++ b/test/test-project/crates/foo/Cargo.toml @@ -0,0 +1,3 @@ +[package] +name = "foo" +version = "0.0.1" diff --git a/test/test-project/crates/foo/src/lib.rs b/test/test-project/crates/foo/src/lib.rs new file mode 100644 index 0000000..939da0e --- /dev/null +++ b/test/test-project/crates/foo/src/lib.rs @@ -0,0 +1,3 @@ +pub fn foo() { + () +}