spec/cc/cli/global_config_spec.rb (46 lines of code) (raw):

require "spec_helper" describe CC::CLI::GlobalConfig do around(:each) do |example| Dir.mktmpdir do |dir| original_file_name = described_class.send :remove_const, :FILE_NAME described_class.const_set :FILE_NAME, File.join(dir, "config.yml") example.run described_class.send :remove_const, :FILE_NAME described_class.const_set :FILE_NAME, original_file_name end end def write_config_file(content) File.write described_class::FILE_NAME, content end def read_config_file File.read described_class::FILE_NAME end let(:config) { described_class.new } it "generates a UUID for you" do allow(UUID).to receive(:new). and_return(instance_double("UUID", generate: "definitely-a-uuid")) expect(config.uuid).to eq "definitely-a-uuid" end it "check_version is true by default" do expect(config.check_version).to eq true end it "check_version? is an alias to check_version" do expect(config.check_version).to eq true expect(config.check_version?).to eq true config.check_version = false expect(config.check_version).to eq false expect(config.check_version?).to eq false end it "loads config" do write_config_file("---\ncheck-version: false\nuuid: uuid") expect(config.check_version?).to eq false expect(config.uuid).to eq "uuid" end it "saves config" do write_config_file("---") config.check_version = false config.uuid config.save expect(read_config_file).to eq "---\ncheck-version: false\nuuid: #{config.uuid}\n" end end