mischa-email_spec 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -7,12 +7,19 @@ A collection of RSpec matchers and Cucumber steps to make testing emails go smoo
7
7
 
8
8
  script/plugin install git://github.com/bmabey/email-spec.git
9
9
 
10
+ === Gem Setup (may or may not work atm)
11
+
12
+ gem install mischa-email_spec
13
+
14
+ # config/environments/test.rb
15
+ config.gem 'email_spec'
16
+
10
17
  === Cucumber
11
18
 
12
19
  To use the steps in features put the following in your env.rb:
13
20
 
14
21
  # Make sure this require is after you require cucumber/rails/world.
15
- require 'email_spec_feature_setup'
22
+ require 'email_spec/cucumber'
16
23
 
17
24
  === RSpec
18
25
 
data/Rakefile CHANGED
@@ -1,14 +1,6 @@
1
- require 'rubygems'
2
- require "rake/gempackagetask"
3
- require 'rake/rdoctask'
4
- require "rake/clean"
5
- require 'spec'
6
- require 'spec/rake/spectask'
7
- require File.expand_path('./lib/email_spec.rb')
1
+ ['rubygems',"rake/gempackagetask",'rake/rdoctask',"rake/clean",'spec', 'spec/rake/spectask', File.expand_path('./lib/email_spec.rb')].each {|file| require file}
8
2
 
9
- ##############################################################################
10
- # Package && release
11
- ##############################################################################
3
+ # package + maintenance stuff
12
4
  spec = Gem::Specification.new do |s|
13
5
  s.name = "email_spec"
14
6
  s.version = EmailSpec::VERSION
@@ -20,19 +12,10 @@ spec = Gem::Specification.new do |s|
20
12
  s.bindir = "bin"
21
13
  s.description = s.summary
22
14
  s.require_path = "lib"
23
- s.files = %w(History.txt install.rb MIT-LICENSE.txt README.rdoc Rakefile) + Dir["lib/**/*"]
15
+ s.files = %w(History.txt install.rb MIT-LICENSE.txt README.rdoc Rakefile) + Dir["lib/**/*"] + Dir["generators/**/*"]
24
16
  # rdoc
25
17
  s.has_rdoc = true
26
18
  s.extra_rdoc_files = %w(README.rdoc MIT-LICENSE.txt)
27
-
28
- # Dependencies
29
- # s.add_dependency "nokogiri", ">= 1.0.6"
30
-
31
- # s.rubyforge_project = "webrat"
32
- end
33
-
34
- Rake::GemPackageTask.new(spec) do |package|
35
- package.gem_spec = spec
36
19
  end
37
20
 
38
21
  desc 'Show information about the gem.'
@@ -40,48 +23,27 @@ task :debug_gem do
40
23
  puts spec.to_ruby
41
24
  end
42
25
 
43
- CLEAN.include ["pkg", "*.gem", "doc", "ri", "coverage", '**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '**/*.class', '**/*.jar', '**/.*.swp' ]
44
-
45
- desc "Run API and Core specs"
46
- Spec::Rake::SpecTask.new do |t|
47
- t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
48
- t.spec_files = FileList['spec/**/*_spec.rb']
26
+ task :gemspec do
27
+ system "rake debug_gem | grep -v \"(in \" > email-spec.gemspec"
49
28
  end
50
29
 
51
- desc "Run all specs in spec directory with RCov"
52
- Spec::Rake::SpecTask.new(:rcov) do |t|
53
- t.spec_opts = ['--options', "\"#{File.dirname(__FILE__)}/spec/spec.opts\""]
54
- t.spec_files = FileList['spec/**/*_spec.rb']
55
- t.rcov = true
56
- t.rcov_opts = lambda do
57
- IO.readlines(File.dirname(__FILE__) + "/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
58
- end
30
+ Rake::GemPackageTask.new(spec) do |package|
31
+ package.gem_spec = spec
59
32
  end
60
33
 
34
+
35
+ CLEAN.include ["pkg", "*.gem", "doc", "ri", "coverage", '**/.*.sw?', '*.gem', '.config', '**/.DS_Store', '**/*.class', '**/*.jar', '**/.*.swp' ]
36
+
61
37
  desc 'Install the package as a gem.'
62
38
  task :install_gem => [:clean, :package] do
63
39
  gem = Dir['pkg/*.gem'].first
64
40
  sh "sudo gem install --local #{gem}"
65
41
  end
66
42
 
67
- task :gemspec do
68
- system "rake debug_gem | grep -v \"(in \" > email_spec.gemspec"
69
- end
70
-
71
- desc "Delete generated RDoc"
72
- task :clobber_docs do
73
- FileUtils.rm_rf("doc")
74
- end
75
-
76
- desc "Generate RDoc"
77
- task :docs => :clobber_docs do
78
- system "hanna --title 'Webrat #{Webrat::VERSION} API Documentation'"
79
- end
80
-
81
-
82
- task :test_features do
83
- puts "hi"
43
+ # Testing
44
+ task :features do
45
+ system("cd spec/rails_root; rake features; cd ../..")
84
46
  end
85
47
 
86
- task :default => :test_features
48
+ task :default => :features
87
49
 
@@ -0,0 +1,18 @@
1
+ # This generator adds email steps to the step definitions directory
2
+ class EmailSpecGenerator < Rails::Generator::Base
3
+ #DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
4
+ # Config::CONFIG['ruby_install_name'])
5
+ def manifest
6
+ record do |m|
7
+ m.directory 'features/step_definitions'
8
+ m.file 'email_steps.rb', 'features/step_definitions/email_steps.rb'
9
+ end
10
+ end
11
+
12
+ protected
13
+
14
+ def banner
15
+ "Usage: #{$0} email_spec"
16
+ end
17
+
18
+ end
@@ -0,0 +1,47 @@
1
+ Given /^(?:a clear email queue|no emails have been sent)$/ do
2
+ reset_mailer
3
+ end
4
+
5
+ # Action
6
+ #
7
+ When /^I open the email$/ do
8
+ open_last_email.should_not be_nil
9
+ end
10
+
11
+ When /^I follow "(.*)" in the email$/ do |link_text|
12
+ current_email.should_not be_nil
13
+ link = parse_email_for_link(current_email, link_text)
14
+ visit(link)
15
+ end
16
+
17
+ When /^I click "(.*)" in the email$/ do |link_text|
18
+ current_email.should_not be_nil
19
+ link = parse_email_for_link(current_email, link_text)
20
+ visit(link)
21
+ end
22
+
23
+
24
+ # Verification
25
+ Then /^"([^']*?)" should receive (\d+) emails?$/ do |email, n|
26
+ unread_emails_for(email).size.should == n.to_i
27
+ end
28
+
29
+ Then /^"([^']*?)" should have (\d+) emails?$/ do |email, n|
30
+ mailbox_for(email).size.should == n.to_i
31
+ end
32
+
33
+ Then /^"([^']*?)" should not receive an email$/ do |email|
34
+ open_email(email).should be_nil
35
+ end
36
+
37
+ Then /^I should see "(.*)" in the subject$/ do |text|
38
+ raise ArgumentError, "To check the subject, you must first open an e-mail" if current_email.nil?
39
+ current_email.should_not be_nil
40
+ current_email.subject.should =~ Regexp.new(text)
41
+ end
42
+
43
+ Then /^I should see "(.*)" in the email$/ do |text|
44
+ current_email.should_not be_nil
45
+ current_email.body.should =~ Regexp.new(text)
46
+ end
47
+
@@ -1,6 +1,6 @@
1
1
  # require this in your env.rb file after you require cucumber/rails/world
2
2
 
3
- %w[steps].each do |file|
3
+ %w[helpers matchers].each do |file|
4
4
  require File.join(File.dirname(__FILE__), "email_spec_#{file}.rb")
5
5
  end
6
6
 
data/lib/email_spec.rb CHANGED
@@ -1,3 +1,3 @@
1
- class EmailSpec
2
- VERSION = '0.0.1'
1
+ module EmailSpec
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mischa-email_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Mabrey
@@ -31,11 +31,15 @@ files:
31
31
  - README.rdoc
32
32
  - Rakefile
33
33
  - lib/email_spec
34
- - lib/email_spec/email_spec_feature_setup.rb
34
+ - lib/email_spec/cucumber.rb
35
35
  - lib/email_spec/email_spec_helpers.rb
36
36
  - lib/email_spec/email_spec_matchers.rb
37
37
  - lib/email_spec/email_spec_steps.rb
38
38
  - lib/email_spec.rb
39
+ - generators/email_spec
40
+ - generators/email_spec/email_spec_generator.rb
41
+ - generators/email_spec/templates
42
+ - generators/email_spec/templates/email_steps.rb
39
43
  has_rdoc: true
40
44
  homepage: http://github.com/bmabey/email-spec/
41
45
  post_install_message: