Prechádzať zdrojové kódy

doc.is_outdated: split on [-.], add unit tests

Simon Legner 5 rokov pred
rodič
commit
c10516cc62
2 zmenil súbory, kde vykonal 16 pridanie a 2 odobranie
  1. 2 2
      lib/docs/core/doc.rb
  2. 14 0
      test/lib/docs/core/doc_test.rb

+ 2 - 2
lib/docs/core/doc.rb

@@ -196,8 +196,8 @@ module Docs
     # 1.1 -> 1.2 = outdated
     # 1.1.1 -> 1.1.2 = not outdated
     def is_outdated(scraper_version, latest_version)
-      scraper_parts = scraper_version.to_s.split(/\./).map(&:to_i)
-      latest_parts = latest_version.to_s.split(/\./).map(&:to_i)
+      scraper_parts = scraper_version.to_s.split(/[-.]/).map(&:to_i)
+      latest_parts = latest_version.to_s.split(/[-.]/).map(&:to_i)
 
       # Only check the first two parts, the third part is for patch updates
       [0, 1].each do |i|

+ 14 - 0
test/lib/docs/core/doc_test.rb

@@ -387,5 +387,19 @@ class DocsDocTest < MiniTest::Spec
         assert_equal ['https://4'], version.links
       end
     end
+
+    it "compares versions" do
+      instance = doc.versions.first.new
+      assert !instance.is_outdated('1', '1')
+      assert !instance.is_outdated('1.2', '1.2')
+      assert !instance.is_outdated('1.2.2', '1.2.2')
+      assert !instance.is_outdated('1.2.2', '1.2.3')
+      assert instance.is_outdated('1', '2')
+      assert instance.is_outdated('1.2', '1.3')
+      assert instance.is_outdated('9', '10')
+      assert instance.is_outdated('99', '101')
+      assert !instance.is_outdated('2006-01-02', '2006-01-03')
+      assert instance.is_outdated('2006-01-02', '2006-02-03')
+    end
   end
 end