Skip to content

Commit

Permalink
Add documentation and tests for delete_form.
Browse files Browse the repository at this point in the history
  • Loading branch information
ashercodeorg committed Aug 8, 2017
1 parent 14fef17 commit 36c375c
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pegasus/helpers/form_helpers.rb
Expand Up @@ -3,6 +3,10 @@

include PegasusFormValidation

# Deletes a form from the DB and from SOLR.
# @param [String] kind The kind of form to delete.
# @param [String] secret The secret associated with the form to delete.
# @return [Boolean] Whether the form was deleted.
def delete_form(kind, secret)
form = DB[:forms].where(kind: kind, secret: secret).first
return false unless form
Expand Down
40 changes: 40 additions & 0 deletions pegasus/test/test_form_helpers.rb
@@ -0,0 +1,40 @@
require_relative './test_helper'
require_relative '../helpers/form_helpers'
require_relative '../src/database'
require 'webmock/minitest'

class FormHelpersTest < Minitest::Test
DEFAULT_KIND = 'default_kind'.freeze
DEFAULT_SECRET = 'default_secret'.freeze

def default_params
time_now = DateTime.now
{
kind: DEFAULT_KIND,
secret: DEFAULT_SECRET,
data: {name: 'fake_name', email: 'fake@example.com'},
email: 'fake@example.com',
created_at: time_now,
updated_at: time_now,
created_ip: '1.2.3.4',
updated_ip: '1.2.3.4'
}
end

def test_delete_form
# TODO(asher): This does not test SOLR. Fix this.
DB[:forms].insert default_params

return_value = delete_form DEFAULT_KIND, DEFAULT_SECRET

assert return_value
assert_equal 0, DB[:forms].where(kind: DEFAULT_KIND, secret: DEFAULT_SECRET).count
end

def test_delete_form_bad_secret
# TODO(asher): This does not test SOLR. Fix this.
return_value = delete_form DEFAULT_KIND, 'not_a_secret'

refute return_value
end
end

0 comments on commit 36c375c

Please sign in to comment.