Sha256: 96a96c60dce6100490ed1301af5c16a00aa97cf17571089b362fba97bc54dc5d

Contents?: true

Size: 1.34 KB

Versions: 3

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[5;6H") }
      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

3 entries across 3 versions & 1 rubygems

Version Path
vedeu-0.0.10 test/lib/vedeu/output/directive_test.rb
vedeu-0.0.9 test/lib/vedeu/output/directive_test.rb
vedeu-0.0.8 test/lib/vedeu/output/directive_test.rb