require "./spec_helper" # This is a meta test that ensures specs can be compiled and run at runtime. # The purpose of this is to report an error if this process fails. # Other tests will fail, but display a different name/description of the test. # This clearly indicates that runtime testing failed. # # Runtime compilation is used to get output of tests as well as check syntax. # Some specs are too complex to be ran normally. # Additionally, this allows examples to easily check specific failure cases. # Plus, it makes testing user-reported issues easy. Spectator.describe "Runtime compilation" do given_example passing_example do it "does something" do expect(true).to be_true end end it "can compile and retrieve the result of an example" do expect(passing_example).to be_successful end it "can retrieve expectations" do expect(passing_example.expectations).to_not be_empty end given_example failing_example do it "does something" do expect(true).to be_false end it "doesn't run" do expect(true).to be_false end end it "detects failed examples" do expect(failing_example).to be_failure end given_example malformed_example do it "does something" do asdf end end it "raises on compilation errors" do expect { malformed_example }.to raise_error(/compilation/i) end given_expectation satisfied_expectation do expect(true).to be_true end it "can compile and retrieve expectations" do expect(satisfied_expectation).to be_satisfied end end