yaml_ext_spec.rb 1.03 KB
require 'helper'

describe "YAML" do
  it "autoloads classes" do
    expect {
      yaml = "--- !ruby/class Autoloaded::Clazz\n"
      expect(YAML.load(yaml)).to eq(Autoloaded::Clazz)
    }.not_to raise_error
  end

  it "autoloads the class of a struct" do
    expect {
      yaml = "--- !ruby/class Autoloaded::Struct\n"
      expect(YAML.load(yaml)).to eq(Autoloaded::Struct)
    }.not_to raise_error
  end

  it "autoloads the class for the instance of a struct" do
    expect {
      yaml = "--- !ruby/struct:Autoloaded::InstanceStruct {}"
      expect(YAML.load(yaml).class).to eq(Autoloaded::InstanceStruct)
    }.not_to raise_error
  end

  it "autoloads the class for the instance" do
    expect {
      yaml = "--- !ruby/object:Autoloaded::InstanceClazz {}\n"
      expect(YAML.load(yaml).class).to eq(Autoloaded::InstanceClazz)
    }.not_to raise_error
  end

  it "does not throw an uninitialized constant Syck::Syck when using YAML.load with poorly formed yaml" do
    expect{ YAML.load(YAML.dump("foo: *bar"))}.not_to raise_error
  end
end