aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Tan <jmingtan@gmail.com>2018-10-04 04:32:21 +0800
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2018-10-03 23:32:21 +0300
commitb6d8b4eb101e14b1be016056ea33d962576bfd61 (patch)
treef814d0b6739d6ba8a32d093c9d6ee749fc0f6bf5
parentb94b05b38e1d76f249d1283fc5c3d0880a639cfd (diff)
Migrate tests for add-known-project, configure-command & get-all-sub-projects (#1313)
-rw-r--r--test/projectile-legacy-test.el57
-rw-r--r--test/projectile-test.el58
2 files changed, 58 insertions, 57 deletions
diff --git a/test/projectile-legacy-test.el b/test/projectile-legacy-test.el
index 835d490..abe1bf3 100644
--- a/test/projectile-legacy-test.el
+++ b/test/projectile-legacy-test.el
@@ -820,63 +820,6 @@
(should (equal "spec/foo/foo.service.spec.js" test-file))
(should (equal "source/bar/bar.service.js" impl-file))))))))
-(ert-deftest projectile-test-exclude-out-of-project-submodules ()
- (projectile-test-with-files
- (;; VSC root is here
- "project/"
- "project/.git/"
- "project/.gitmodules"
- ;; Current project root is here:
- "project/web-ui/"
- "project/web-ui/.projectile"
- ;; VCS git submodule will return the following submodules,
- ;; relative to current project root, 'project/web-ui/':
- "project/web-ui/vendor/client-submodule/"
- "project/server/vendor/server-submodule/")
- (let ((project (file-truename (expand-file-name "project/web-ui"))))
- (noflet ((projectile-files-via-ext-command
- (dir vcs) (when (string= default-directory project)
- '("vendor/client-submodule"
- "../server/vendor/server-submodule")))
- (projectile-project-root
- () project))
-
- ;; assert that it only returns the submodule 'project/web-ui/vendor/client-submodule/'
- (should (equal (list (expand-file-name "vendor/client-submodule/" project))
- (projectile-get-all-sub-projects project 'git)))))))
-
-(ert-deftest projectile-test-configure-command-for-generic-project-type ()
- (noflet ((projectile-default-configure-command (x) nil)
- (projectile-project-type () 'generic))
- (let ((configure-command (projectile-configure-command "fsdf")))
- (should (equal nil configure-command)))))
-
-;;; known projects tests
-
-(ert-deftest projectile-test-add-known-project-adds-project-to-known-projects ()
- "An added project should be added to the list of known projects."
- (let (projectile-known-projects)
- (projectile-add-known-project "~/my/new/project/")
- (should (string= (car projectile-known-projects)
- "~/my/new/project/"))))
-
-(ert-deftest projectile-test-add-known-project-moves-projects-to-front-of-list ()
- "adding a project should move it to the front of the list of known projects, if it already
-existed."
- (let ((projectile-known-projects (list "~/b/" "~/a/")))
- (projectile-add-known-project "~/a/")
- (should (equal projectile-known-projects
- (list "~/a/" "~/b/")))))
-
-(ert-deftest projectile-test-add-known-project-no-near-duplicates ()
- "~/project and ~/project/ should not be added
- separately to the known projects list."
- (let ((projectile-known-projects '("~/a/")))
- (projectile-add-known-project "~/a")
- (projectile-add-known-project "~/b")
- (projectile-add-known-project "~/b/")
- (should (equal projectile-known-projects '("~/b/" "~/a/")))))
-
(defun projectile-test-tmp-file-path ()
"Return a filename suitable to save data to in the
test temp directory"
diff --git a/test/projectile-test.el b/test/projectile-test.el
index 74c6707..e562475 100644
--- a/test/projectile-test.el
+++ b/test/projectile-test.el
@@ -87,6 +87,64 @@ test temp directory"
(expect (projectile-expand-root "foo/bar") :to-equal "/path/to/project/foo/bar")
(expect (projectile-expand-root "./foo/bar") :to-equal "/path/to/project/foo/bar")))
+(describe "projectile-get-all-sub-projects"
+ (it "excludes out-of-project submodules"
+ (projectile-test-with-sandbox
+ (projectile-test-with-files
+ (;; VCS root is here
+ "project/"
+ "project/.git/"
+ "project/.gitmodules"
+ ;; Current project root is here:
+ "project/web-ui/"
+ "project/web-ui/.projectile"
+ ;; VCS git submodule will return the following submodules,
+ ;; relative to current project root, 'project/web-ui/':
+ "project/web-ui/vendor/client-submodule/"
+ "project/server/vendor/server-submodule/")
+ (let ((project (file-truename (expand-file-name "project/web-ui"))))
+ (spy-on 'projectile-files-via-ext-command :and-call-fake
+ (lambda (dir vcs)
+ (when (string= dir project)
+ '("vendor/client-submodule"
+ "../server/vendor/server-submodule"))))
+ (spy-on 'projectile-project-root :and-return-value project)
+ ;; assert that it only returns the submodule 'project/web-ui/vendor/client-submodule/'
+ (expect (projectile-get-all-sub-projects project) :to-equal
+ (list (expand-file-name "vendor/client-submodule/" project))))))))
+
+(describe "projectile-configure-command"
+ (it "configure command for generic project type"
+ (spy-on 'projectile-default-configure-command :and-return-value nil)
+ (spy-on 'projectile-project-type :and-return-value 'generic)
+ (expect (projectile-configure-command "fsdf") :to-equal nil)))
+
+;;; known projects tests
+
+(describe "projectile-add-known-project"
+ :var (projectile-known-projects-file)
+ (before-each
+ (setq projectile-known-projects-file (projectile-test-tmp-file-path)))
+
+ (after-each
+ (delete-file projectile-known-projects-file nil))
+
+ (it "an added project should be added to the list of known projects"
+ (let ((projectile-known-projects nil))
+ (projectile-add-known-project "~/my/new/project/")
+ (expect projectile-known-projects :to-equal '("~/my/new/project/"))))
+ (it "adding a project should move it to the front of the list of known projects, if it already existed."
+ (let ((projectile-known-projects '("~/b/" "~/a/")))
+ (projectile-add-known-project "~/a/")
+ (expect projectile-known-projects :to-equal '("~/a/" "~/b/"))))
+ (it "~/project and ~/project/ should not be added separately to the known projects list"
+ (let ((projectile-known-projects '("~/project/")))
+ (projectile-add-known-project "~/project")
+ (expect projectile-known-projects :to-equal '("~/project/"))
+ (projectile-add-known-project "~/b")
+ (projectile-add-known-project "~/b/")
+ (expect projectile-known-projects :to-equal '("~/b/" "~/project/")))))
+
(describe "projectile-load-known-projects"
(it "loads known projects through serialization functions"
(let ((projectile-known-projects-file (projectile-test-tmp-file-path)))