spec/belajar/solution_spec.rb in belajar-0.1.1 vs spec/belajar/solution_spec.rb in belajar-1.0.0
- old
+ new
@@ -1,9 +1,8 @@
require 'spec_helper'
describe Belajar::Solution do
-
it { is_expected.to respond_to :code }
it { is_expected.to respond_to :path }
it { is_expected.to respond_to :verify! }
it { is_expected.to respond_to :verified? }
it { is_expected.to respond_to :errors }
@@ -12,75 +11,75 @@
prepare_solutions
Belajar.config.solutions_path = solutions_basepath
end
let(:solution_path) { all_solution_file_paths.first }
- let(:unit_path) { all_unit_dirs.first }
+ let(:unit_path) { all_unit_dirs.first }
subject { Belajar::Solution.new(unit_path) }
- it "has the prescribed solution path from the given unit path" do
+ it 'has the prescribed solution path from the given unit path' do
expect(subject.path).to eq solution_path
end
- it "has the prescribed code" do
+ it 'has the prescribed code' do
expect(subject.code).to eq solution_content
end
- it "loads the verified state from the store on creation" do
+ it 'loads the verified state from the store on creation' do
Belajar::Solution.new(unit_path).verify!
solution = Belajar::Solution.new(unit_path)
expect(solution).to be_verified
end
- describe "#store_key" do
- it "returns the appropriate key string for the solution" do
- key = "verified/course_a/chapter_a/unit_a"
+ describe '#store_key' do
+ it 'returns the appropriate key string for the solution' do
+ key = 'verified/course_a/chapter_a/unit_a'
expect(subject.store_key).to eq key
end
end
- context "Verification" do
- describe "#verify!" do
- it "returns a TestResult" do
+ context 'Verification' do
+ describe '#verify!' do
+ it 'returns a TestResult' do
expect(subject.verify!).to be_a Belajar::TestResult
end
- it "sets @verified true if Test passed" do
+ it 'sets @verified true if Test passed' do
QuickStore.store.set(subject.store_key, false)
solution = Belajar::Solution.new(unit_path)
expect(solution.instance_variable_get(:@verified)).to be_falsey
solution.verify!
expect(solution.instance_variable_get(:@verified)).to be_truthy
end
- it "sets the solution's state in the store to verified if passed" do
+ it 'sets the solution’s state in the store to verified if passed' do
subject.verify!
mastered = QuickStore.store.get(subject.store_key)
expect(mastered).to be_truthy
end
- it "sets the solution's state in the store to unverified unless passed" do
- subject.instance_variable_set(:@code, 'puts "I ❤ Belajar!"')
+ it 'sets the solution’s state in the store to unverified unless passed' do
+ allow(File).to receive(:read).and_return('puts "I ❤ Belajar!"')
+ QuickStore.store.set(subject.store_key, true)
+
subject.verify!
mastered = QuickStore.store.get(subject.store_key)
-
expect(mastered).to be_falsey
end
end
- describe "#verified?" do
- it "is false by default" do
- expect(subject.verified?).to be_falsey
+ describe '#verified?' do
+ it 'is false by default' do
+ expect(subject.verified?).to be false
end
- it "returns true if #verify! passed" do
+ it 'returns true if #verify! passed' do
subject.verify!
- expect(subject.verified?).to be_truthy
+ expect(subject.verified?).to be true
end
end
end
-
end