Sha256: 7f713b54cceb306f4b01b14c364c3501ae45e8bf4a7d0f56c6ff6deda1e702ff

Contents?: true

Size: 1.87 KB

Versions: 8

Compression:

Stored size: 1.87 KB

Contents

require "spec_helper"
require "study_engine/report"
require "study_engine/config"

module StudyEngine
  describe Report do
    before do
      StudyEngine.events = ["Baseline", "6 month", "12 month"]
    end

    describe "#groups" do
      let(:a1ai) { double("a1ai", study_id: "a1", event: "Baseline", completed_at: false) }
      let(:a1bi) { double("a1bi", study_id: "a1", event: "6 month",  completed_at: false) }

      let(:a2ai) { double("a2ai", study_id: "a2", event: "Baseline", completed_at: false) }

      let(:a1a)  { double("a1a", study_id: "a1", event: "Baseline", completed_at: Time.new) }
      let(:a1b)  { double("a1b", study_id: "a1", event: "6 month",  completed_at: Time.new) }
      let(:a1c)  { double("a1c", study_id: "a1", event: "12 month", completed_at: Time.new) }

      let(:a2a)  { double("a2a", study_id: "a2", event: "Baseline", completed_at: Time.new) }
      let(:a2b)  { double("a2b", study_id: "a2", event: "6 month",  completed_at: Time.new) }

      let(:a3a)  { double("a3a", study_id: "a3", event: "Baseline", completed_at: Time.new) }

      let(:assessments) do
        [a1ai, a1a, a1b, a1bi, a1c, a2ai, a2a, a2b, a3a]
      end

      it "returns a data structure assessments grouped by study id ordered by event and preferring complete" do
        Report.new(assessments, "study_id", "ASC").groups.should == [
          Report.group_class.new("a1", [a1a, a1ai], [a1b, a1bi], [a1c]),
          Report.group_class.new("a2", [a2a, a2ai], [a2b], []),
          Report.group_class.new("a3", [a3a], [], []),
        ]
      end

      it "can order by study_id descending" do
        Report.new(assessments, "study_id", "DESC").groups.should == [
          Report.group_class.new("a3", [a3a], [], []),
          Report.group_class.new("a2", [a2a, a2ai], [a2b], []),
          Report.group_class.new("a1", [a1a, a1ai], [a1b, a1bi], [a1c]),
        ]
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
study_engine-0.3.1 spec/models/study_engine/report_spec.rb
study_engine-0.3.0 spec/models/study_engine/report_spec.rb
study_engine-0.2.2 spec/models/study_engine/report_spec.rb
study_engine-0.2.1 spec/models/study_engine/report_spec.rb
study_engine-0.2.0 spec/models/study_engine/report_spec.rb
study_engine-0.1.1 spec/models/study_engine/report_spec.rb
study_engine-0.1.0 spec/models/study_engine/report_spec.rb
study_engine-0.0.2 spec/models/study_engine/report_spec.rb