Sha256: 44ff9908f6ca5a0366b78878ee40dbdb696e644a4a3020c274549b9cf11ec1a0

Contents?: true

Size: 1.34 KB

Versions: 4

Compression:

Stored size: 1.34 KB

Contents

require_relative '../../../test_helper'

module Vedeu
  describe Directive do
    let(:described_class)    { Directive }
    let(:described_instance) { described_class.new(directives) }
    let(:directives)         {
      {
        position: position,
        colour:   colour,
        style:    style
      }
    }
    let(:position)           { [] }
    let(:colour)             { [] }
    let(:style)              { [] }

    it { described_instance.must_be_instance_of(Directive) }

    describe '.enact' do
      let(:subject) { described_class.enact(directives) }

      it { subject.must_be_instance_of(String) }

      context 'when the position is not set' do
        it { subject.must_equal('') }
      end

      context 'when the position is set' do
        let(:position) { [4, 5] }

        it { subject.must_equal("\e[4;5H") }
      end

      context 'when the colour is not set' do
        it { subject.must_equal('') }
      end

      context 'when the colour is set' do
        let(:colour) { [:red, :black] }

        it { subject.must_equal("\e[38;5;31m\e[48;5;40m") }
      end

      context 'when the style is not set' do
        it { subject.must_equal('') }
      end

      context 'when the style is set' do
        let(:style) { [:normal, :underline, :normal] }

        it { subject.must_equal("\e[0m\e[4m\e[0m") }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vedeu-0.0.14 test/lib/vedeu/output/directive_test.rb
vedeu-0.0.13 test/lib/vedeu/output/directive_test.rb
vedeu-0.0.12 test/lib/vedeu/output/directive_test.rb
vedeu-0.0.11 test/lib/vedeu/output/directive_test.rb