Sha256: ff49e3b7bff7f5ed4b71dcf16c735a60f30444c59d742e0616e8e019264a066b
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
# -*- encoding: utf-8 -*- require 'spec_helper' describe TTY::Shell::Question, '#read_email' do let(:input) { StringIO.new } let(:output) { StringIO.new } let(:shell) { TTY::Shell.new(input, output) } context 'with valid email' do it 'reads empty' do input << "" input.rewind q = shell.ask("What is your email?") expect { q.read_email }.to raise_error(TTY::InvalidArgument) end it 'reads valid email' do input << "piotr@example.com" input.rewind q = shell.ask("What is your email?") expect(q.read_email).to eql "piotr@example.com" end end context 'with invalid email' do it 'fails to read invalid email' do input << "this will@neverwork" input.rewind q = shell.ask("What is your email?") expect { q.read_email }.to raise_error(TTY::InvalidArgument) end it 'reads invalid and asks again' do input << "this will@neverwork\nthis.will@example.com" input.rewind q = shell.ask("What is your email?").on_error(:retry) expect(q.read_email).to eql "this.will@example.com" expect(output.string).to eql "What is your email?\nWhat is your email?\n" end end end
Version data entries
4 entries across 4 versions & 1 rubygems