spec/belajar/chapter_spec.rb in belajar-0.1.1 vs spec/belajar/chapter_spec.rb in belajar-1.0.0

- old
+ new

@@ -1,9 +1,8 @@ require 'spec_helper' describe Belajar::Chapter do - it { is_expected.to respond_to :title } it { is_expected.to respond_to :units } it { is_expected.to respond_to :path } it { is_expected.to respond_to :mastered? } @@ -16,61 +15,67 @@ Belajar.config.solutions_path = solutions_basepath end subject { Belajar::Chapter.new(chapter_path) } - it "has the prescribed title" do + it 'has the prescribed title' do expect(subject.title).to eq chapter_titles.first end - it "has the prescribed path" do + it 'has the prescribed path' do expect(subject.path).to eq chapter_path end - it "is not started by default" do + it 'is not started by default' do expect(subject.started?).to be_falsey end - it "is not mastered by default" do + it 'is not mastered by default' do expect(subject.mastered?).to be_falsey end - describe "#units" do - it "loads the prescribed number of units" do + describe '#units' do + it 'loads the prescribed number of units' do course_name = course_dir_names.first chapter_name = File.basename(chapter_path) units_count = available_units(course_name, chapter_name).count expect(subject.units.count).to eq units_count end - it "lazy-loads the units" do + it 'lazy-loads the units' do expect(subject.instance_variable_get(:@units)).to be_nil subject.units expect(subject.instance_variable_get(:@units)).not_to be_nil end end - describe "#started?" do - it "returns true if at least one unit has been verified" do - allow(subject.units.first).to receive(:mastered?) { true } + describe '#started?' do + it 'returns true if at least one unit has been verified' do + allow(subject.units.first).to receive(:mastered?).and_return(true) expect(subject.started?).to be true end - it "returns false if no unit has been verified" do - allow_any_instance_of(Belajar::Unit).to receive(:mastered?) { false } + it 'returns false if no unit has been verified' do + allow_any_instance_of(Belajar::Unit) + .to receive(:mastered?) + .and_return(false) + expect(subject.started?).to be false end end - describe "#mastered?" do - it "returns true if all units have been verified" do + describe '#mastered?' do + it 'returns true if all units have been verified' do subject.units.each { |unit| unit.solution.verify! } expect(subject.mastered?).to be true end - it "returns false unless all units have been verified" do - allow_any_instance_of(Belajar::Unit).to receive(:mastered?) { false } - allow(subject.units.first).to receive(:mastered?) { true } + it 'returns false unless all units have been verified' do + allow_any_instance_of(Belajar::Unit) + .to receive(:mastered?) + .and_return(false) + + allow(subject.units.first).to receive(:mastered?).and_return(true) expect(subject.mastered?).to be false end end end