Sha256: 26b69c99d5dd3c5664bd575263992e12fe65006c1e213d6077b92d343a2ea43a

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

RSpec.describe Owners::CLI do
  subject { capture { command } }

  let(:command) { described_class.start(args) }

  def capture
    stdout = $stdout
    $stdout = StringIO.new
    yield
    $stdout.string
  ensure
    $stdout = stdout
  end

  describe "for" do
    let(:args) { ["for", "example/app/controllers/users_controller.rb"] }

    context "without a specified file" do
      it "parses owners correctly" do
        expect(subject).to eq("@org/auth\n@org/blog\n")
      end
    end

    context "with a specified file" do
      before { args << "-f" << "SOMETHING_ELSE" }

      it "overrides the default OWNERS filename" do
        begin
          expect(subject).to eq("")
        ensure
          Owners.file = nil
        end
      end
    end

    context "without debugging" do
      before { args << "-d" }

      it "parses owners correctly" do
        expected = <<-OUTPUT
@org/auth
group
  example/app/controllers/users_controller.rb
  example/app/OWNERS:1 => (?-mix:user)

@org/blog
group
  example/app/controllers/users_controller.rb
  example/OWNERS:2 => (?-mix:.*)

        OUTPUT

        expect(subject).to eq(expected)
      end
    end
  end

  describe "for_diff" do
    let(:args) { ["for_diff", "781b3b2", "ba7cd78"] }

    context "without a specified file" do
      it "parses owners correctly" do
        expect(subject).to eq("@org/blog\ndata@example.com\n@whitespace\n")
      end
    end

    context "with a specified file" do
      before { args << "--file" << "SOMETHING_ELSE" }

      it "overrides the default OWNERS filename" do
        begin
          expect(subject).to eq("")
        ensure
          Owners.file = nil
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
owners-0.0.9 spec/owners_cli_spec.rb