Skip to content

Commit 80f2150

Browse files
committed
Add specs for Data#members
1 parent 2c2a05f commit 80f2150

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module DataSpecs
22
guard -> { ruby_version_is "3.2" and Data.respond_to?(:define) } do
33
Measure = Data.define(:amount, :unit)
4+
5+
class DataSubclass < Data; end
46
end
57
end

spec/ruby/core/data/members_spec.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
require_relative '../../spec_helper'
2+
require_relative 'fixtures/classes'
3+
4+
ruby_version_is "3.2" do
5+
describe "Data#members" do
6+
it "returns an array of attribute names" do
7+
measure = DataSpecs::Measure.new(amount: 42, unit: 'km')
8+
measure.members.should == [:amount, :unit]
9+
end
10+
end
11+
12+
describe "DataClass#members" do
13+
it "returns an array of attribute names" do
14+
DataSpecs::Measure.members.should == [:amount, :unit]
15+
end
16+
17+
context "class inheriting Data" do
18+
it "isn't available in a subclass" do
19+
DataSpecs::DataSubclass.should_not.respond_to?(:members)
20+
end
21+
end
22+
end
23+
end

0 commit comments

Comments
 (0)