Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add documentation and tests for delete_form. #16921

Merged
merged 1 commit into from Aug 8, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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