diff options
| author | Eugene Tan <jmingtan@gmail.com> | 2018-10-04 04:32:21 +0800 |
|---|---|---|
| committer | Bozhidar Batsov <bozhidar.batsov@gmail.com> | 2018-10-03 23:32:21 +0300 |
| commit | b6d8b4eb101e14b1be016056ea33d962576bfd61 (patch) | |
| tree | f814d0b6739d6ba8a32d093c9d6ee749fc0f6bf5 /test | |
| parent | b94b05b38e1d76f249d1283fc5c3d0880a639cfd (diff) | |
Migrate tests for add-known-project, configure-command & get-all-sub-projects (#1313)
Diffstat (limited to 'test')
| -rw-r--r-- | test/projectile-legacy-test.el | 57 | ||||
| -rw-r--r-- | test/projectile-test.el | 58 |
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))) |
