spec/daigaku/reference_solution_spec.rb in daigaku-0.0.2 vs spec/daigaku/reference_solution_spec.rb in daigaku-0.1.0

- old
+ new

@@ -2,10 +2,11 @@ describe Daigaku::ReferenceSolution do it { is_expected.to respond_to :code } it { is_expected.to respond_to :path } + it { is_expected.to respond_to :code_lines } let(:unit_path) do course_name = course_dir_names.first unit_dirs(course_name)[0].first end @@ -15,9 +16,26 @@ it "has the prescribed path" do path = File.join(unit_path, reference_solution_name) expect(subject.path).to eq path end - it "has the prescribed code" do - expect(subject.code).to eq solution_content + describe "#code" do + it "has the prescribed code" do + expect(subject.code).to eq solution_content + end + + it "returns an empty string if the code is not available" do + subject.instance_variable_set(:@code, nil) + expect(subject.code).to eq "" + end + end + + + describe "#code_lines" do + it "returns the code split into lines" do + lines = ['muffin = "sweet"', 'hamburger = "mjummy"'] + allow(subject).to receive(:code) { lines.join("\n") } + + expect(subject.code_lines).to eq lines + end end end