summaryrefslogtreecommitdiffstats
path: root/test/day_entry_test.rb
blob: fd8543a14681078fa002af5d33746cdb42949c96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
require 'test_helper'

class DayEntryTest < HCl::TestCase
  def test_project_info
    register_uri(:get, '/daily', {projects:[], day_entries:[{project_id:123}]})
    register_uri(:get, '/projects/123', {project:{name:'fun times'}})
    assert_equal 'fun times', HCl::DayEntry.today(http).first.project_info(http).name
  end

  def test_all_today_empty
    register_uri(:get, '/daily', {projects:[],day_entries:[]})
    assert HCl::DayEntry.today(http).empty?
  end

  def test_all_today
    register_uri(:get, '/daily', {projects:[], day_entries:[{id:1,note:'hi'}]})
    assert_equal 'hi', HCl::DayEntry.today(http).first.note
  end

  def test_all_with_date
    register_uri(:get, '/daily/013/2013', {projects:[], day_entries:[{id:1,note:'hi'}]})
    assert_equal 'hi', HCl::DayEntry.daily(http,Date.civil(2013,1,13)).first.note
  end

  def test_toggle
    entry = HCl::DayEntry.new(id:123)
    register_uri(:get, '/daily/timer/123', {note:'hi'})
    entry.toggle http
  end

  def test_cancel_success
    entry = HCl::DayEntry.new(id:123)
    register_uri(:delete, '/daily/delete/123')
    assert entry.cancel http
  end

  def test_cancel_failure
    entry = HCl::DayEntry.new(id:123)
    http.expects(:delete).raises(HCl::HarvestMiddleware::Failure)
    assert !entry.cancel(http)
  end

  def test_to_s
    entry = HCl::DayEntry.new \
      hours: '1.2', client: 'Taco Town', project:'Pizza Taco', task:'Preparation'
    assert_equal "Taco Town - Pizza Taco - Preparation (1:12)", entry.to_s
  end

  def test_append_note
    entry = HCl::DayEntry.new(:id => '1', :notes => 'yourmom.', :hours => '1.0')
    http.stubs(:post)
    entry.append_note(http, 'hi world')
    assert_equal "yourmom.\nhi world", entry.notes
  end

  def test_append_note_to_empty
    entry = HCl::DayEntry.new(:id => '1', :notes => nil, :hours => '1.0')
    http.stubs(:post)
    entry.append_note(http, 'hi world')
    assert_equal 'hi world', entry.notes
  end
end