From 36c375c96560d5e76b07887a8835fc5300620bf8 Mon Sep 17 00:00:00 2001 From: ashercodeorg Date: Mon, 7 Aug 2017 14:53:47 -0500 Subject: [PATCH] Add documentation and tests for delete_form. --- pegasus/helpers/form_helpers.rb | 4 ++++ pegasus/test/test_form_helpers.rb | 40 +++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 pegasus/test/test_form_helpers.rb diff --git a/pegasus/helpers/form_helpers.rb b/pegasus/helpers/form_helpers.rb index 0ac273582178d..09dd7663a87bb 100644 --- a/pegasus/helpers/form_helpers.rb +++ b/pegasus/helpers/form_helpers.rb @@ -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 diff --git a/pegasus/test/test_form_helpers.rb b/pegasus/test/test_form_helpers.rb new file mode 100644 index 0000000000000..cfcf42de1d9e8 --- /dev/null +++ b/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