]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - test/plugins/test_points.rb
plugin(points): +/- must come after, closes #34
[user/henk/code/ruby/rbot.git] / test / plugins / test_points.rb
index f1a7479dd49402093ebc9e9f39e95909652bd000..83018e2eb65131c02bafe17099ce2f493b573040 100644 (file)
@@ -21,6 +21,10 @@ class PointsPluginTest < Test::Unit::TestCase
     assert_not_nil(@plugin)
     assert_not_empty(@plugin.help(nil))
 
+    m = MockMessage.new('', 'user')
+    @plugin.points(m, key: 'linux')
+    assert_equal('linux has zero points', m.replies.first)
+
     m = MockMessage.new('linux++', 'user')
     @plugin.message(m)
     assert_equal('linux now has 1 points!', m.replies.first)
@@ -40,5 +44,31 @@ class PointsPluginTest < Test::Unit::TestCase
     m = MockMessage.new('', 'linux')
     @plugin.points(m, {})
     assert_equal('points for linux: 2', m.replies.first)
+
+    m = MockMessage.new('alice++', 'user')
+    @plugin.message(m)
+    assert_equal('alice now has 1 points!', m.replies.first)
+
+    ignored = [
+      '++alice',
+      '--alice',
+      'something something --github',
+      'ls --sort time',
+      '-- foo',
+      '++ foo',
+    ]
+    ignored.each do |ignore|
+      m = MockMessage.new(ignore, 'user')
+      @plugin.message(m)
+      assert_empty(m.replies, "message should've been ignored: #{ignore.inspect}")
+    end
+
+    m = MockMessage.new('bob++', 'user')
+    @plugin.message(m)
+    assert_equal('bob now has 1 points!', m.replies.first)
+
+    m = MockMessage.new('bot++', 'user')
+    @plugin.message(m)
+    assert_include(MockBot.new.lang.strings['thanks'], m.replies.first)
   end
 end