aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEugene Tan <jmingtan@gmail.com>2018-10-16 00:02:00 +0800
committerBozhidar Batsov <bozhidar.batsov@gmail.com>2018-10-15 18:02:00 +0200
commitced8382e5f78c678e7b4fc727da09465afe65c2b (patch)
tree6ade3a54c800fd3a469385b1cf22622ef47e3ce6 /test
parentc56c2a8bf50468c637a06025f1a709bbab70a736 (diff)
Migrate some tests (#1326)
Diffstat (limited to 'test')
-rw-r--r--test/projectile-legacy-test.el109
-rw-r--r--test/projectile-test.el77
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