summaryrefslogtreecommitdiff
path: root/spec/ruby/core/warning/element_reference_spec.rb
blob: 41129e533abb1c4a5d4d25b40aa91c95bc9f8f39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require_relative '../../spec_helper'

describe "Warning.[]" do
  ruby_version_is '2.7.2' do
    it "returns default values for categories :deprecated and :experimental" do
      ruby_exe('p Warning[:deprecated]').chomp.should == "false"
      ruby_exe('p Warning[:experimental]').chomp.should == "true"
    end
  end

  ruby_version_is '3.3' do
    it "returns default values for :performance category" do
      ruby_exe('p Warning[:performance]').chomp.should == "false"
      ruby_exe('p Warning[:performance]', options: "-w").chomp.should == "false"
    end
  end

  it "raises for unknown category" do
    -> { Warning[:noop] }.should raise_error(ArgumentError, /unknown category: noop/)
  end

  it "raises for non-Symbol category" do
    -> { Warning[42] }.should raise_error(TypeError)
    -> { Warning[false] }.should raise_error(TypeError)
    -> { Warning["noop"] }.should raise_error(TypeError)
  end
end