Sha256: ec0cd7262d8e39621b23cc565561a8ae5803158304be0f4280159a3d0ea01c56

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

require 'test_helper'

class TeamTest < ActiveSupport::TestCase
  setup do
    @team = teams(:shopify_developers)
  end

  test ".find_or_create_by_handle first search in the database" do
    assert_equal @team, Team.find_or_create_by_handle('Shopify/developers')
  end

  test ".find_or_create_by_handle fetch the team from github if it's not in the db already" do
    Shipit.github_api.expects(:org_teams).with('shopify', per_page: 100)
    response = stub(rels: {}, data: [new_team])
    Shipit.github_api.expects(:last_response).returns(response)
    assert_difference -> { Team.count }, +1 do
      Team.find_or_create_by_handle('Shopify/new-team')
    end
  end

  test "#refresh_members! fetch all the team members from github" do
    response = stub(rels: {members: members_resource})
    Shipit.github_api.expects(:get).with(@team.api_url).returns(response)
    assert_difference -> { User.count }, +1 do
      @team.refresh_members!
    end
  end

  private

  def members_resource
    stub(get: stub(data: [george], rels: {}))
  end

  def george
    rels = {self: stub(href: 'https://api.github.com/user/george')}
    stub(id: 42, name: 'George Abitbol', login: 'george', email: 'george@cyclim.se', rels: rels)
  end

  def new_team
    stub(
      id: 24,
      name: 'New Team',
      slug: 'new-team',
      url: 'https://example.com',
      description: 'The Best one',
      organization: 'shopify',
    )
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
shipit-engine-0.2.3 test/models/team_test.rb
shipit-engine-0.2.2 test/models/team_test.rb
shipit-engine-0.2.1 test/models/team_test.rb
shipit-engine-0.2.0 test/models/team_test.rb
shipit-engine-0.1.0 test/models/team_test.rb
shipit-engine-0.0.1.pre test/models/team_test.rb