diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/projectile-legacy-test.el | 109 | ||||
| -rw-r--r-- | test/projectile-test.el | 77 |
2 files changed, 77 insertions, 109 deletions
diff --git a/test/projectile-legacy-test.el b/test/projectile-legacy-test.el index abe1bf3..c497621 100644 --- a/test/projectile-legacy-test.el +++ b/test/projectile-legacy-test.el @@ -711,115 +711,6 @@ (projectile-project-compilation-dir nil)) (should (equal (concat (expand-file-name ".") "/") (projectile-compilation-dir))))) -(ert-deftest projectile-detect-project-type-of-rails-like-npm-test () - (projectile-test-with-sandbox - (projectile-test-with-files - ("project/" - "project/Gemfile" - "project/app/" - "project/lib/" - "project/db/" - "project/config/" - "project/spec/" - "project/package.json" - ) - (let ((projectile-indexing-method 'native)) - (noflet ((projectile-project-root - () (file-truename (expand-file-name "project/")))) - (should (equal 'rails-rspec - (projectile-detect-project-type)))))))) - -(ert-deftest projectile-test-dirname-matching-count () - (should (equal 2 - (projectile-dirname-matching-count "src/food/sea.c" - "src/food/cat.c"))) - (should (equal 0 - (projectile-dirname-matching-count "src/weed/sea.c" - "src/food/sea.c"))) - (should (equal 0 - (projectile-dirname-matching-count "test/demo-test.el" - "demo.el")))) - -(ert-deftest projectile-test-find-matching-test () - (projectile-test-with-sandbox - (projectile-test-with-files - ("project/app/models/weed/" - "project/app/models/food/" - "project/spec/models/weed/" - "project/spec/models/food/" - "project/app/models/weed/sea.rb" - "project/app/models/food/sea.rb" - "project/spec/models/weed/sea_spec.rb" - "project/spec/models/food/sea_spec.rb") - (let ((projectile-indexing-method 'native)) - (noflet ((projectile-project-type () 'rails-rspec) - (projectile-project-root - () (file-truename (expand-file-name "project/")))) - (should (equal "spec/models/food/sea_spec.rb" - (projectile-find-matching-test - "app/models/food/sea.rb")))))))) - -(ert-deftest projectile-test-find-matching-file () - (projectile-test-with-sandbox - (projectile-test-with-files - ("project/app/models/weed/" - "project/app/models/food/" - "project/spec/models/weed/" - "project/spec/models/food/" - "project/app/models/weed/sea.rb" - "project/app/models/food/sea.rb" - "project/spec/models/weed/sea_spec.rb" - "project/spec/models/food/sea_spec.rb") - (let ((projectile-indexing-method 'native)) - (noflet ((projectile-project-type () 'rails-rspec) - (projectile-project-root () (file-truename (expand-file-name "project/")))) - (should (equal "app/models/food/sea.rb" - (projectile-find-matching-file - "spec/models/food/sea_spec.rb")))))))) - -(ert-deftest projectile-test-find-matching-test/file-custom-project () - (projectile-test-with-sandbox - (projectile-test-with-files - ("project/src/foo/" - "project/src/bar/" - "project/test/foo/" - "project/test/bar/" - "project/src/foo/foo.service.js" - "project/src/bar/bar.service.js" - "project/test/foo/foo.service.spec.js" - "project/test/bar/bar.service.spec.js") - (let* ((projectile-indexing-method 'native) - (reg (projectile-register-project-type 'npm-project '("somefile") :test-suffix ".spec"))) - (noflet ((projectile-project-type () 'npm-project) - (projectile-project-root () (file-truename (expand-file-name "project/")))) - (let ((test-file (projectile-find-matching-test "src/foo/foo.service.js")) - (impl-file (projectile-find-matching-file "test/bar/bar.service.spec.js"))) - (should (equal "test/foo/foo.service.spec.js" test-file)) - (should (equal "src/bar/bar.service.js" impl-file)))))))) - -(ert-deftest projectile-test-find-matching-test/file-custom-project-with-dirs () - (projectile-test-with-sandbox - (projectile-test-with-files - ("project/source/foo/" - "project/source/bar/" - "project/spec/foo/" - "project/spec/bar/" - "project/source/foo/foo.service.js" - "project/source/bar/bar.service.js" - "project/spec/foo/foo.service.spec.js" - "project/spec/bar/bar.service.spec.js") - (let* ((projectile-indexing-method 'native) - (reg (projectile-register-project-type 'npm-project '("somefile") - :test-suffix ".spec" - :test-dir "spec/" - :src-dir "source/"))) - (noflet ((projectile-project-type () 'npm-project) - (projectile-project-root () (file-truename (expand-file-name "project/")))) - (let ((test-file (projectile-find-matching-test "source/foo/foo.service.js")) - (impl-file (projectile-find-matching-file "spec/bar/bar.service.spec.js"))) - (should (equal "spec/foo/foo.service.spec.js" test-file)) - (should (equal "source/bar/bar.service.js" impl-file)))))))) - (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 4e2a4b9..0d217a4 100644 --- a/test/projectile-test.el +++ b/test/projectile-test.el @@ -100,6 +100,83 @@ test temp directory" (it "caches the project type" (expect (gethash (projectile-project-root) projectile-project-type-cache) :to-equal 'emacs-cask))) +(describe "projectile-detect-project-type" + (it "detects project-type for rails-like npm tests" + (projectile-test-with-sandbox + (projectile-test-with-files + ("project/" + "project/Gemfile" + "project/app/" + "project/lib/" + "project/db/" + "project/config/" + "project/spec/" + "project/package.json") + (let ((projectile-indexing-method 'native)) + (spy-on 'projectile-project-root :and-return-value (file-truename (expand-file-name "project/"))) + (expect (projectile-detect-project-type) :to-equal 'rails-rspec)))))) + +(describe "projectile-dirname-matching-count" + (it "counts matching dirnames ascending file paths" + (expect (projectile-dirname-matching-count "src/food/sea.c" "src/food/cat.c") :to-equal 2) + (expect (projectile-dirname-matching-count "src/weed/sea.c" "src/food/sea.c") :to-equal 0) + (expect (projectile-dirname-matching-count "test/demo-test.el" "demo.el") :to-equal 0))) + +(describe "projectile-find-matching-test" + (it "finds matching test or file" + (projectile-test-with-sandbox + (projectile-test-with-files + ("project/app/models/weed/" + "project/app/models/food/" + "project/spec/models/weed/" + "project/spec/models/food/" + "project/app/models/weed/sea.rb" + "project/app/models/food/sea.rb" + "project/spec/models/weed/sea_spec.rb" + "project/spec/models/food/sea_spec.rb") + (let ((projectile-indexing-method 'native)) + (spy-on 'projectile-project-type :and-return-value 'rails-rspec) + (spy-on 'projectile-project-root :and-return-value (file-truename (expand-file-name "project/"))) + (expect (projectile-find-matching-test "app/models/food/sea.rb") :to-equal "spec/models/food/sea_spec.rb") + (expect (projectile-find-matching-file "spec/models/food/sea_spec.rb") :to-equal "app/models/food/sea.rb"))))) + (it "finds matching test or file in a custom project" + (projectile-test-with-sandbox + (projectile-test-with-files + ("project/src/foo/" + "project/src/bar/" + "project/test/foo/" + "project/test/bar/" + "project/src/foo/foo.service.js" + "project/src/bar/bar.service.js" + "project/test/foo/foo.service.spec.js" + "project/test/bar/bar.service.spec.js") + (let ((projectile-indexing-method 'native)) + (projectile-register-project-type 'npm-project '("somefile") :test-suffix ".spec") + (spy-on 'projectile-project-type :and-return-value 'npm-project) + (spy-on 'projectile-project-root :and-return-value (file-truename (expand-file-name "project/"))) + (expect (projectile-find-matching-test "src/foo/foo.service.js") :to-equal "test/foo/foo.service.spec.js") + (expect (projectile-find-matching-file "test/bar/bar.service.spec.js") :to-equal "src/bar/bar.service.js"))))) + (it "finds matching test or file in a custom project with dirs" + (projectile-test-with-sandbox + (projectile-test-with-files + ("project/source/foo/" + "project/source/bar/" + "project/spec/foo/" + "project/spec/bar/" + "project/source/foo/foo.service.js" + "project/source/bar/bar.service.js" + "project/spec/foo/foo.service.spec.js" + "project/spec/bar/bar.service.spec.js") + (let ((projectile-indexing-method 'native)) + (projectile-register-project-type 'npm-project '("somefile") + :test-suffix ".spec" + :test-dir "spec/" + :src-dir "source/") + (spy-on 'projectile-project-type :and-return-value 'npm-project) + (spy-on 'projectile-project-root :and-return-value (file-truename (expand-file-name "project/"))) + (expect (projectile-find-matching-test "source/foo/foo.service.js") :to-equal "spec/foo/foo.service.spec.js") + (expect (projectile-find-matching-file "spec/bar/bar.service.spec.js") :to-equal "source/bar/bar.service.js")))))) + (describe "projectile-get-all-sub-projects" (it "excludes out-of-project submodules" (projectile-test-with-sandbox |
