Files
importer-issue-ops/spec/concerns/environment_writer_spec.rb
T

56 lines
1.4 KiB
Ruby
Raw Normal View History

2022-01-07 19:45:53 +00:00
# frozen_string_literal: true
2023-05-15 10:58:01 -07:00
RSpec.describe EnvironmentWriter do
2022-01-07 19:45:53 +00:00
let(:test_class) do
class TestClass
2023-05-15 10:58:01 -07:00
include EnvironmentWriter
2022-01-07 19:45:53 +00:00
end
TestClass.new
end
describe "#set_output" do
let(:name) { "var_name" }
let(:value) { "var_value" }
2023-02-28 09:18:02 -08:00
let(:output) { "#{name}=#{value}" }
2022-01-07 19:45:53 +00:00
subject { test_class.set_output(name, value) }
2023-02-28 09:18:02 -08:00
it { expect { subject }.to change { File.readlines(ENV["GITHUB_OUTPUT"], chomp: true).last }.to(/#{output}/) }
2022-01-07 19:45:53 +00:00
context "when value is nil" do
let(:value) { nil }
2023-02-28 09:18:02 -08:00
it { expect { subject }.not_to change { File.read(ENV["GITHUB_OUTPUT"], chomp: true).last } }
2022-01-07 19:45:53 +00:00
end
2023-05-15 15:39:52 -07:00
context "when value contains a newline" do
let(:value) { "var_value\n" }
it { expect { subject }.to raise_error(ArgumentError) }
end
2022-01-07 19:45:53 +00:00
end
2023-05-15 10:58:01 -07:00
describe "#set_environment" do
let(:name) { "env_var_name" }
let(:value) { "env_var_value" }
let(:output) { "#{name}=#{value}" }
subject { test_class.set_environment(name, value) }
it { expect { subject }.to change { File.readlines(ENV["GITHUB_ENV"], chomp: true).last }.to(/#{output}/) }
context "when value is nil" do
let(:value) { nil }
it { expect { subject }.not_to change { File.read(ENV["GITHUB_ENV"], chomp: true).last } }
end
2023-05-15 15:39:52 -07:00
context "when value contains a newline" do
let(:value) { "env_var_value\n" }
it { expect { subject }.to raise_error(ArgumentError) }
end
2023-05-15 10:58:01 -07:00
end
2022-01-07 19:45:53 +00:00
end