test/story_test.rb in tracker_api-0.2.9 vs test/story_test.rb in tracker_api-0.2.10

- old
+ new

@@ -4,10 +4,11 @@ let(:pt_user) { PT_USER_1 } let(:client) { TrackerApi::Client.new token: pt_user[:token] } let(:project_id) { pt_user[:project_id] } let(:project) { VCR.use_cassette('get project') { client.project(project_id) } } let(:story_id) { '66728004' } + let(:another_story_id) { '66728000' } let(:story) { VCR.use_cassette('get story') { project.story(story_id) } } it 'can update an existing story' do new_name = "#{story.name}+" @@ -32,14 +33,57 @@ story.name.must_equal new_name story.description.must_equal new_desc end + it 'can add new labels to an existing story' do + new_label_name = 'super-special-label' + + story.labels.map(&:name).wont_include new_label_name + + new_label = TrackerApi::Resources::Label.new(name: new_label_name) + story.labels << new_label + + VCR.use_cassette('save story with new label', record: :new_episodes) do + story.save + end + + story.labels.wont_be_empty + story.labels.map(&:name).must_include new_label_name + end + + it 'objects are equal based on id' do + story_a = story + story_b = VCR.use_cassette('get story') { project.story(story_id) } + story_c = VCR.use_cassette('get another story') { project.story(another_story_id) } + + story_a.must_equal story_b + story_a.hash.must_equal story_b.hash + story_a.eql?(story_b).must_equal true + story_a.equal?(story_b).must_equal false + + story_a.wont_equal story_c + story_a.hash.wont_equal story_c.hash + story_a.eql?(story_c).must_equal false + story_a.equal?(story_c).must_equal false + end + describe '.tasks' do + it 'gets all tasks for this story with eager loading' do + VCR.use_cassette('get story with tasks', record: :new_episodes) do + tasks = project.story(story_id, fields: ':default,tasks').tasks + + tasks.wont_be_empty + task = tasks.first + task.must_be_instance_of TrackerApi::Resources::Task + end + end + it 'gets all tasks for this story' do VCR.use_cassette('get tasks', record: :new_episodes) do - tasks = project.story(story_id).tasks + story = project.story(story_id) + tasks = VCR.use_cassette('get tasks for story') { story.tasks } tasks.wont_be_empty task = tasks.first task.must_be_instance_of TrackerApi::Resources::Task end @@ -53,9 +97,20 @@ unless tasks.empty? task = tasks.first task.must_be_instance_of TrackerApi::Resources::Task end end + end + end + + it 'can create task' do + VCR.use_cassette('create task') do + task = project.story(story_id).create_task(description: 'Test task') + + task.must_be_instance_of TrackerApi::Resources::Task + task.id.wont_be_nil + task.id.must_be :>, 0 + task.description.must_equal 'Test task' end end end describe '.activity' do