gdpr_rails 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +10 -6
- data/app/controllers/policy_manager/application_controller.rb +1 -1
- data/app/controllers/policy_manager/portability_requests_controller.rb +6 -2
- data/app/controllers/policy_manager/terms_controller.rb +3 -1
- data/app/controllers/policy_manager/user_portability_requests_controller.rb +23 -20
- data/app/controllers/policy_manager/user_terms_controller.rb +6 -3
- data/app/mailers/policy_manager/application_mailer.rb +4 -2
- data/app/mailers/policy_manager/portability_mailer.rb +3 -3
- data/app/models/policy_manager/concerns/user_behavior.rb +1 -0
- data/app/models/policy_manager/user_term.rb +4 -3
- data/app/views/layouts/policy_manager/application.html.erb +2 -2
- data/app/views/layouts/policy_manager/portability.erb +5 -0
- data/app/views/policy_manager/401.erb +1 -0
- data/app/views/policy_manager/user_terms/show.html.erb +1 -1
- data/app/views/policy_manager/user_terms/show.json.jbuilder +2 -2
- data/lib/policy_manager/config.rb +2 -1
- data/lib/policy_manager/engine.rb +6 -0
- data/lib/policy_manager/exporter.rb +1 -1
- data/lib/policy_manager/exporter/handler.rb +1 -1
- data/lib/policy_manager/exporter/view.rb +0 -1
- data/lib/policy_manager/version.rb +1 -1
- data/spec/controllers/policy_manager/categories_controller_spec.rb +51 -0
- data/spec/controllers/policy_manager/portability_requests_controller_spec.rb +85 -0
- data/spec/controllers/policy_manager/terms_controller_spec.rb +125 -0
- data/spec/controllers/policy_manager/user_portability_requests_controller_spec.rb +76 -0
- data/spec/controllers/policy_manager/user_terms_controller_test.rb +92 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +5 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +3 -0
- data/spec/dummy/app/helpers/user_helper.rb +2 -0
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/user.rb +26 -0
- data/spec/dummy/app/views/collection.json.jbuilder +11 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/app/views/layouts/portability.erb +15 -0
- data/spec/dummy/app/views/layouts/portability_requests.erb +14 -0
- data/spec/dummy/app/views/template.erb +1 -0
- data/spec/dummy/app/views/template.haml +1 -0
- data/spec/dummy/app/views/template.json.jbuilder +16 -0
- data/spec/dummy/app/views/test.erb +2 -0
- data/spec/dummy/app/views/user_mailer/admin.html.erb +1 -0
- data/spec/dummy/app/views/user_mailer/complete.html.erb +5 -0
- data/spec/dummy/app/views/user_mailer/progress.html.erb +1 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +38 -0
- data/spec/dummy/bin/update +29 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config.ru +5 -0
- data/spec/dummy/config/application.rb +18 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +40 -0
- data/spec/dummy/config/database.yml.test +11 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +54 -0
- data/spec/dummy/config/environments/production.rb +91 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +33 -0
- data/spec/dummy/config/puma.rb +56 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/config/secrets.yml +32 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20180326193826_create_users.rb +9 -0
- data/spec/dummy/db/schema.rb +56 -0
- data/spec/dummy/log/development.log +326 -0
- data/spec/dummy/log/test.log +191664 -0
- data/spec/dummy/package.json +5 -0
- data/spec/dummy/public/401.html +67 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/test/fixtures/users.yml +7 -0
- data/spec/dummy/test/models/user_test.rb +7 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/--/--mfnHuBeUWp4S0t5Gy9k8VFIhwH9_LeypHDTu0Tr_Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-N/-NoFiyuUvy7n3K1PxiEyF7_ntONf3urTihjqgwKchcg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-X/-XFR33TgzW2uZ8FmmS1qlvD_wt-ox_qSWUqkuGQ6bNY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-Y/-YgMOSbIN0nMswWct7su9H9L0ICRZaRq34uti66AccM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0D/0DLlhyih7JQM6a36xn80gBEsL2G82TErD8Dj_whhN-U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0g/0gU8kGXleEoducYsLkjy0I4rqnsgoWaK8lr0kAj6bp8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1v/1vjyDvVwQZlnzxWly1brkoOTCuyetgHeuvD_e6dGKyM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/27/27CLtUz28kIcg6tIfaI14dpsrgCp7ic4eWUty-oq-sU.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2F/2FM4u0wEV34qcad5bAQ22XooiME80Q0nmdLaov7r7rE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2y/2Y306WtiuaczRMe98h_Ef4LsZ7wmIC8iaa8c8EJinbs.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2y/2yX2unfUzEDiZ4-YOag_nKmTGmuMxpM11mKaJOvfOlQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3M/3Me2fKJpLVszUwxPRDsRAmn-4i9xo32wikeSt4U2wP8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/45/45ictadc7ZQCwBtuyUUnDphpgBJ7TJ6pcfxw3Rm8Vrs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4P/4PwXz69YXiFINqI_IN8j6RKuEt3OdudXYYLnaUq7rjo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4h/4hzVRVCmNzCaipE8Gr5-DBLrbCGbWpjcyBY9LdEj3jo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4x/4xpoeWRviufHh_q5whnyBr0pk8UQxCZPYQ6ftOStGLU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/54/54rewMnifJtcFqBk72TyTygb95Ttwy9bKfBZExpc-C0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/58/58sAgzwP4eFt7yuB9XYB1mxdOz0FJEh-xIOdTwXXE2Y.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5h/5hHJvRWBp2bv5Ree05fgFaFaPqfaRhMLTEdkG-O6aVM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5m/5mO5S2MfbEUVxkXH46amJgMg-T2BHvPkW-PHDU1kP68.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5r/5rJJjxkhn8Z92_UbvZfgoL5BcowL6nZNszQvsginLnk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6B/6B2r6p0vt9YHgITkhKEgJagg9pCZvP28XC8UOVcbLSQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7d/7dwWkcsTuGWyWtwftKHD_gXp9W4odm_5You_aKR4fsg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7g/7gQSNgL-2DO1ds5Jv0PIG150XXV5HrGgSE1_9Y9lTGw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/87/87l8g48DzMElacGqDKT2Tw4SN-vPuWe-87l1WVSGGSU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8M/8MYgLnjJJ3blsJWL9xRH67td4kEWctoW8vYSPk16D4E.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8r/8rGgH_J5ehLhHbE7cWWoP9Zec-2rlNUjBS9UFF-2ZIM.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9j/9j6v9HXgAkMtDkZYoqP7GOaorSZsL5Rj7hbAazvTOzc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A0/A0XqQCJjWHzYPT5e9-HBsso43aW4FSEDl0k6e4VGR2k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Aw/AwefclPt5cLFlWCSECVgQvodBrq_1V9JWkOGvfpoVe0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bm/Bm3fgDgbZDpu1Tg8RWJNvhqP_EtKfEUezpd5RtvfnVY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DU/DUUFwyjNig6oW4WouEVhntJB_JYYRXhEnvXjUhz2SS8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ex/ExToesB1w5_4dhyfTB7w2rnEW3JYsyiDCwQS5YryS6c.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FG/FGTqZQ-ICnWRw_FIx5roRi8IATSdS5OkwrMtS3XtXBY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Fi/Fi7XjszeLrn8TVUuJQRwrmmVolcJXedDZtlfXb0e0_8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gk/GkeSNzAIKac6T0REp80cIYHQW869pVVY8_jS7YbxfXQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H0/H0IluIpOXOr2BxNlpAjzwArc75w56IB4mlScIpBdQ24.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H1/H1LhaUgwIO1D2k0RMMo2na3l-Elc5xpQKK5iBOp4F5I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JU/JUxqlgeXXBppIjEN9UyWuqzr4PfBPsUj011p_oO71do.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K_/K_D8m4e3tDZRmnK3CKTP8bP5kmay4w-Td9Cu5U-ED-I.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kb/KbL79CL_ql47tz33zx6iBjdGneWja5vKKEEAkW_w7NM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kb/KbZGMmB8DJ2BA4mcdSXN4bebOMd0j8s4PkB0S-23XfE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/L3/L31_eyjOuFh92q-RAafvpnxszCNW9HoObtWVS4gpQHo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LL/LLlnPIuN7QMIMMQ5nRnTNtLtkMx1LXfhg6fs2tDYaSk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lm/LmnZza-YSYZY-dEHFm3EWLFVvsxsIOnCKJ5-3zlrOKk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lu/LuFRHx4qb0l1K_A0pjAOQO8llKL2WaJRMKuH9JMNVw0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OA/OAtvFgJJQnarYrhlAK-vSgn9egwT1NDz78YqjstXCBA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/OY/OYj0e5ox1ill6KB0XxgjT7dpx88kd1ow52UsaJwSHtE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Oc/OcrdvWm5dtFEHIomtrRuAU5SquzymBRnNyRpx-cEWvw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qo/QoIXukdcQouQLyMkre-k41LX_pHd0kKo57VZ79D9GS8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qp/QpwXeqd_RNMk--6i6e5jHxRvn5PaARBKDucD5In1F-s.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TN/TN4TNVw5nI_0WW6X9CsSG4eDr1LJQclFhQNHtGOb2QA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/U0/U0FxO18TfrZeRQx8V4zoWPSskXIA2s9MHtP3lJfONWs.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/UC/UCvPD9uXZwJeEm-1pmKEMfgj4DjvUOf4dx2jhhhlv6k.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ue/UeAHhO5lBiMllQvT8e5iL1ddSRsZxH0BHjYjHdjcSTY.cache +3 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ui/UiRXGeBaY88moPjIjUguzeNSGWaRyVS8tSCNjnwfwy8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Us/Us-RVGQ4-a94Pu0yyugJVYf4RxGXf-xlPqYtAiwYWjU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ut/UtGzFRo4wbBgA2fF_MZ8krZa159Z1A6aoxGAXDPmZVw.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VG/VGChoLzfgrn9FobW4pun_Jde-mQ3MgDloMfYR8m6drM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vk/VkQUb2zhn-uTclXve3ha-oUJAN9l-rmuxFVuNSz9KYk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Vm/VmFxkBmoolMrxZI2hEaFfp8wPGc33_oxQoGyaFsh70M.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W-/W-pTadlsf_Vpkn5yWhaLXUV1aKGLvP0nhxewZnwjGBc.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W3/W3Hibs-2ZXTSO00vDV2YhmzHjmvegpc-rARFtZTgyy8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X-/X-RlCEy2cN8eQ1d2pqsNwUZ4H4ej8ztuZ0MvZKgKmkk.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X8/X8wS5wYKKTutqBv6YpD5Gpm2s_wyBehAQww9qxgE96Q.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yc/Yc2cY6cLNXFppCCbQSm3-FiGXtBtRa3Tq1RKxgARljA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yo/YoZWJS_zeJGl5xpGe-YaWy9J3RRNaVwVnMLNbrWN6oM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZI/ZIsNAJOrG64AKjeXnqm0vARAqYLKq6PVhiiYDZXsuCg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ZX/ZX7fzX0ySlnLNNqdDO5sM6XA_ajPzRgqPCnLt8hVYcA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zy/Zy0_Bbsl6EQYVutKT0oH9YCq2Cl53wPVkZn0dqjK4xk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_c/_c__nkkVWonX6jTabzOJ1VjpZtlO8F43EC-KB4ZaIZg.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a5/A5zisQ1zyxFgISw9mztcz0XbHTdurklNjleMx1aUA5U.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a5/a5O3NIdzPl0cdbCdVkYA9P9lpNRPjyMCViolW9XhLVo.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aS/aS6nnaCaO7L6EkZaEVpCmd8KMTcB7_Z2RzKYn9y4EQ0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/am/amrEpszeLKtdRNJO_wvfR4CrCz0Ir06_TX8B7pq1cBg.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bD/bD1YRW0nGSZSi6Yjf72ndpk0mSsnE2bIqF9HFpuQvJQ.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bL/bLTJSRS-mPPtzb3ADwW73pG5RKqBMNyRSzmSykFI4aE.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bL/bLpXenoWnkxKfzeQ13hl4RPrP7Bz-CtaezkMzIQlza8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b_/b_Itlk9QZZd7Rvf8kcA4yLP1R5Acu7jB-m1xQiSU0qE.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dG/dGSOHXa2AZ0InnD5tvsjuust4kitbUMQ2Sl_m8wAyf8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dk/dkEweQBtw4njrs6iVJnj7ETQ4TymXPZEco06LxR-GkU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dt/dtAVvVgzfd4QVeFVwgVQEqfOZHSLv31NAGS--_AFFbk.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dv/DvhTH0zff-ovDk0WuxtJVX52w1Dsj8mpTrlu13gFZLk.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dv/dvFJw0JQySkre2qTOuLi3LGVG3Ph4EZAlO6DGxv-NnU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eE/eEuAk0x0P4OKjqc5gajF3htm7mCKzyqIXg6J12bCC3I.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ef/efZTW0s76NnPeT2AOVM0HzsJS1xLONNJUHYE1zdCwGY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/el/elst6LxDf6uiVQqncFBRktiesQ9v596iWdTQYZawHEM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eu/euKy5W1SAHGCFuJPKmIrFquEdTMDPZUo6cDEhrPTLls.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fA/fAViRsSZA5XPpdMKXZISeo6pwTqQvSbgV3DwDIabGNo.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fD/fDLaGMMGspyWygH8LlU0lxLyilp70uVzb4RCmhjbnhM.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fP/FPY6pMfBVF2ZZFxjkNoHy-pIX28YUKhYxeA3NetoKcc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fP/fPpdI9YznBUi8ANFCN5U-ZVmPliuf4NEJVoXO51WvJc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fP/fpQeY6CbAun98ZHomPg7-bNYZhRLvsamvuecQS5LMBU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g0/g0330d9boKb5chcX02AeoulsGjVEEjZJWdlpD_XpJY4.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gD/gD6ot5sYgE-WBfmqQ7IaCYuSjtyIndn5s8O2MW6o8GU.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/im/im-Ko494HDK7aTzKHqKNowN3DyIBJn4TiHUm2mn2dhM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j6/j65tprlPKeR-CehSzEgLSiUFS3AaYIJuzAKEk61ZA1Y.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/j8/j8dyiExD2nG1_gMxpZvzzwB0yaR1R5ENefU2luvhl7Y.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jP/jPNHfJkhkye_m0cM-YrVn04QupctcHRhUu8iwOOqhtw.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kc/kcFhYA0d3emrDxUmud7c48o5u6yQwyeOVtMmwORgpBw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lk/lk9QnvV0ljxlBsK_QCOrLY03_QjoK5h_pKjjxNEd3SA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lr/lrTlK4TrzHJzJlyneDsyErO7wWUWPDmftoHVW7Rgj-0.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lt/lty3VRZktpe4UVJ4_zXLYxW4_kA4BxdzbEJsDuzd2B0.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mE/mESJqSh3IknWVtFxGBdjfQ7ucP3Qr3AnX_VN5XI8H9E.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mN/mNRYoOqJlB5Q4bgxmEEBCwKWfK7rMHv78T86bTHR--Q.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mX/mX1nlsL_SWOB4y22W5FheRX0YEONKyOY7xUeIvRiHco.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nB/nBZaod2TAg-SCCdhqam2NT8yByjFoYKRNsrK2yYoQh8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nU/nUx82NupskukOpC2x2UWPfPZYfcqn_YiCdpx9zoDLSA.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/o1/o14kRWbYMyhU0inykrB0P9jKoKHqRF0SwhpubuX6taU.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oQ/oQLnX-2tNalupH2T660cx2Bv3YARzSKu8JZKCLp0j20.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oQ/oQcpLerwTeJdicTzkZbtuTnmEkICELpCDAJS7ItOd7U.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ob/obVCEvP8Mw6ENSbPK7wgHTWZpqyjoex_URTP6dey67g.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oz/ozRNsKle-0dkVv9TVQv2L4j0KHKVorNn-Y1ZoqeH23k.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pG/pGx8dgb85gcQO3XOrNlHmvafHPF-lL3uSCNTdhqPX18.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p_/p_PWUDJLQf1atvZhhoyb-0AaUsrtHK8KU7kagZ2zyRM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pm/pmbWi2btd3KtBAF8CYhiLr2-ukFXxId0ylowGfqydkY.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q2/q2K0N7MblONWdUKKS4c9bfwNHDWuRkYadJCjok9UCXI.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qu/qu7l1v4I55NHtTUGNIuAM2wJ3QBOQhANIRUwle_j1Y4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rV/rVSAQ3sTHbGs4UPCwZRbSQjlbfOm8AzJqR4k2gkf9hM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sH/sHXKrc5B3KBol-bEZM0XIznn6_BQVCPF7hasOTXNyO8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sM/sMKpdRSlEcVRbOqSsc__aw5mVMuXK3ZEPZCvViYNda8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sc/scdDaFuy71mZQ2arS0dSZNmPLSmiIMZa0swBAmPyiU8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uU/uUt5sf6NA2ya1M2MpCcLhrhyUw4WeEGEa8vsf7cekBQ.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ug/ug5RHgJJ200_4orxQv-xqHnZDyPiPjgRhTVz7vgzWY4.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/v6/v6_ojZlJ1QDYoLVNY2SApvICGklrej1fxYJxFWb8IM4.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/va/Vad7m3FUgOsZS7pl3DgNAPEvfAqBAG1_WKjqpGlJTG8.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/va/va5poKCjsL5Wp3j5hL7wFbD7TcPBzheI2tiSnBh_3tM.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xs/xsgBreUPfNwnblzhAkGChr7kJbU7PqO8PWyEW-CfEQY.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/y7/y7F3_2-J_Arx_AkD0P3mAkqOjZ9JiMlGaxpmSM7lsRc.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yF/yFPchNl88oBAJTCBwi9H9eL9EV2D7fNcEM7JjPpgg_k.cache +2 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z4/z4D0MyZoHMzE_XiqOnR-a9JLt4SpmpFAFHiFUNIKEV8.cache +1 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zP/zPFxDYRLW-AMnp9IbPtHKk_--8Iy8dluhgknBCcqZcA.cache +0 -0
- data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zZ/zZiuImW-YlPd_8deyKGG-Wku7gzX-sxgPRUJTBOpO0U.cache +1 -0
- data/spec/dummy/tmp/portability/1/build.zip +0 -0
- data/spec/dummy/tmp/portability/11/build.zip +0 -0
- data/spec/dummy/tmp/portability/14/build.zip +0 -0
- data/spec/dummy/tmp/portability/15/build.zip +0 -0
- data/spec/dummy/tmp/portability/17/build.zip +0 -0
- data/spec/dummy/tmp/portability/2/build.zip +0 -0
- data/spec/dummy/tmp/portability/4/build.zip +0 -0
- data/spec/dummy/tmp/portability/8/build.zip +0 -0
- data/spec/dummy/tmp/portability/9/build.zip +0 -0
- data/spec/dummy/tmp/restart.txt +0 -0
- data/spec/mailers/policy_manager/portability_mailer_spec.rb +194 -0
- data/spec/mailers/previews/policy_manager/portability_mailer_preview.rb +6 -0
- data/spec/models/policy_manager/config_spec.rb +29 -0
- data/spec/models/policy_manager/exporter_spec.rb +99 -0
- data/spec/models/policy_manager/portability_request_spec.rb +78 -0
- data/spec/models/policy_manager/portability_rule_spec.rb +56 -0
- data/spec/models/policy_manager/term_spec.rb +29 -0
- data/spec/models/policy_manager/user_spec.rb +118 -0
- data/spec/models/policy_manager/user_term_spec.rb +4 -0
- data/spec/rails_helper.rb +79 -0
- data/spec/spec_helper.rb +107 -0
- metadata +484 -18
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
describe PolicyManager::Exporter do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
PolicyManager::Term.create(description: "el", rule: "age")
|
8
|
+
|
9
|
+
@config = PolicyManager::Config.setup do |c|
|
10
|
+
c.add_rule({name: "age", validates_on: [:create, :update],
|
11
|
+
if: ->(o){ o.enabled_for_validation } })
|
12
|
+
c.exporter = {
|
13
|
+
path: Rails.root + "tmp/export",
|
14
|
+
resource: User ,
|
15
|
+
index_template: '<h1>index template, custom</h1>
|
16
|
+
<ul>
|
17
|
+
<% @collection.each do |rule| %>
|
18
|
+
<li><%= link_to rule.name, "./#{rule.name}/index.html" %></li>
|
19
|
+
<% end %>
|
20
|
+
</ul>',
|
21
|
+
layout: 'portability',
|
22
|
+
after_zip: ->(o, r){ puts "THIS IS GREAT #{o} was zipped, now what ??" }
|
23
|
+
|
24
|
+
}
|
25
|
+
|
26
|
+
c.add_portability_rule({
|
27
|
+
name: "exportable_data",
|
28
|
+
collection: :foo_data,
|
29
|
+
template: "hellow , here a collection will be rendered
|
30
|
+
<%= @base_path %>
|
31
|
+
<% @collection.each do |item| %>
|
32
|
+
<p><%= item.country%></p>
|
33
|
+
|
34
|
+
<% end %>
|
35
|
+
<%= will_paginate(@collection, renderer: PolicyManager::PaginatorRenderer) %>",
|
36
|
+
json_template: Rails.root.join("app/views/collection.json.jbuilder"),
|
37
|
+
per: 10
|
38
|
+
})
|
39
|
+
|
40
|
+
c.add_portability_rule({
|
41
|
+
name: "my_account",
|
42
|
+
member: :account_data,
|
43
|
+
template: "hellow , here a resource will be rendered <%= image_tag(@member[:image]) %> <%= @member[:name] %> "
|
44
|
+
})
|
45
|
+
|
46
|
+
c.add_portability_rule({
|
47
|
+
name: "my_account_from_template",
|
48
|
+
member: :account_data,
|
49
|
+
template: Rails.root.join("app/views").join("template.erb")
|
50
|
+
})
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
PolicyManager::Term.create(description: "el", rule: "age")
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
it "instance of exporter" do
|
59
|
+
assert @config.exporter.is_a?(PolicyManager::Exporter)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "initialize folder & clear folder" do
|
63
|
+
person = OpenStruct.new(id: 1, name: "John Smith")
|
64
|
+
PolicyManager::ExporterHandler.any_instance.stubs(:clear!).returns(true)
|
65
|
+
PolicyManager::ExporterHandler.any_instance.stubs(:handle_zip_upload).returns(true)
|
66
|
+
@config.exporter.perform(person)
|
67
|
+
assert File.exist?(Rails.root + "tmp/export/1")
|
68
|
+
|
69
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{person.id}"))
|
70
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{person.id}-out.zip"))
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
it "user export will generate folder, layout, templates" do
|
75
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
76
|
+
user = User.create(email: "a@a.cl")
|
77
|
+
assert !user.errors.any?
|
78
|
+
PolicyManager::ExporterHandler.any_instance.stubs(:clear!).returns(true)
|
79
|
+
|
80
|
+
PolicyManager::ExporterHandler.any_instance.stubs(:handle_zip_upload).returns(true)
|
81
|
+
@config.exporter.perform(user)
|
82
|
+
|
83
|
+
assert File.exists?(Rails.root.join("tmp/export/#{user.id}"))
|
84
|
+
paths = Dir.glob( Rails.root.join("tmp/export/#{user.id}") + "*")
|
85
|
+
names = paths.map{|o| File.basename(o) }
|
86
|
+
arr = names - ["exportable_data", "index.html", "my_account", "my_account_from_template"]
|
87
|
+
assert arr.empty?
|
88
|
+
noko = Nokogiri::HTML.parse( File.open(paths.first + "/index.html").read )
|
89
|
+
assert noko.css("h1").text == "layout header"
|
90
|
+
assert noko.css("footer").text == "layout footer"
|
91
|
+
|
92
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{user.id}"))
|
93
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{user.id}-out.zip"))
|
94
|
+
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PolicyManager::PortabilityRequest do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
|
7
|
+
PolicyManager::Term.create(description: "el", rule: "age")
|
8
|
+
|
9
|
+
@config = PolicyManager::Config.setup do |c|
|
10
|
+
c.from_email = "foo@bar.org"
|
11
|
+
c.admin_email_inbox = "foo@baaz.org"
|
12
|
+
c.add_rule({name: "age", validates_on: [:create, :update], if: ->(o){ o.enabled_for_validation } })
|
13
|
+
c.exporter = {
|
14
|
+
path: Rails.root + "tmp/export",
|
15
|
+
resource: User ,
|
16
|
+
index_template: '
|
17
|
+
<h1>index template, custom</h1>
|
18
|
+
<ul>
|
19
|
+
<% @collection.each do |rule| %>
|
20
|
+
<li><%= link_to rule.name, "./#{rule.name}/index.html" %></li>
|
21
|
+
<% end %>
|
22
|
+
</ul>',
|
23
|
+
layout: 'portability_requests',
|
24
|
+
after_zip: ->(zip_path, resource){
|
25
|
+
puts "THIS IS GREAT #{zip_path} was zipped, now what ??"
|
26
|
+
}
|
27
|
+
|
28
|
+
}
|
29
|
+
|
30
|
+
c.add_portability_rule({
|
31
|
+
name: "exportable_data",
|
32
|
+
collection: :foo_data,
|
33
|
+
template: "hello , here a collection will be
|
34
|
+
rendered <%= @collection.to_json %>
|
35
|
+
<%= will_paginate(@collection, renderer: PolicyManager::PaginatorRenderer) %>",
|
36
|
+
per: 10
|
37
|
+
})
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
PolicyManager::Term.create(description: "el", rule: "age")
|
42
|
+
end
|
43
|
+
|
44
|
+
it "user export will generate folder, layout, templates" do
|
45
|
+
|
46
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
47
|
+
User.any_instance.stubs(:foo_data).returns( (1..100).to_a)
|
48
|
+
user = User.create(email: "a@a.cl")
|
49
|
+
assert !user.errors.any?
|
50
|
+
preq = user.portability_requests.create
|
51
|
+
assert preq.pending?
|
52
|
+
|
53
|
+
PolicyManager::ExporterHandler.any_instance.stubs(:clear!).returns(true)
|
54
|
+
preq.confirm!
|
55
|
+
assert preq.progress?
|
56
|
+
notification = ActionMailer::Base.deliveries.last
|
57
|
+
assert notification.present?
|
58
|
+
|
59
|
+
expect(File.exists?(Rails.root.join("tmp/export/#{user.id}"))).to be_truthy
|
60
|
+
paths = Dir.glob( Rails.root.join("tmp/export/#{user.id}") + "*")
|
61
|
+
names = paths.map{|o| File.basename(o) }
|
62
|
+
arr = names - ["exportable_data", "index.html", "my_account", "my_account_from_template"]
|
63
|
+
assert arr.empty?
|
64
|
+
noko = Nokogiri::HTML.parse( File.open(paths.first + "/index.html").read )
|
65
|
+
assert noko.css("h1").text == "layout header"
|
66
|
+
assert noko.css("footer").text == "layout footer"
|
67
|
+
|
68
|
+
expect(preq.reload).to be_completed
|
69
|
+
|
70
|
+
notification = ActionMailer::Base.deliveries.last
|
71
|
+
assert Nokogiri::HTML.parse(notification.body.raw_source).css("a").attr("href").value.include?("#{user.id}-out.zip")
|
72
|
+
|
73
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{user.id}"))
|
74
|
+
FileUtils.rm_rf(Rails.root.join("tmp/export/#{user.id}-out.zip"))
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PolicyManager::PortabilityRule do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
|
7
|
+
@config = PolicyManager::Config.setup do |c|
|
8
|
+
c.add_rule({name: "age", validates_on: [:create, :update], if: ->(o){false} })
|
9
|
+
c.add_portability_rule({
|
10
|
+
name: "exportable_data",
|
11
|
+
collection: :foo_data,
|
12
|
+
per: 10
|
13
|
+
})
|
14
|
+
|
15
|
+
c.add_portability_rule({
|
16
|
+
name: "my_account",
|
17
|
+
member: :account_data
|
18
|
+
})
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
if defined?(User)
|
23
|
+
Object.send(:remove_const, :User)
|
24
|
+
load Rails.root + 'app/models/user.rb'
|
25
|
+
end
|
26
|
+
|
27
|
+
pr = PolicyManager::Term.create(description: "el", rule: "age")
|
28
|
+
pr.publish!
|
29
|
+
end
|
30
|
+
|
31
|
+
it "return a collection" do
|
32
|
+
User.any_instance.stubs(:foo_data).returns((1..100).map{|o| o} )
|
33
|
+
@user = User.create(email: "a@a.cl")
|
34
|
+
assert !@user.errors.any?
|
35
|
+
|
36
|
+
collection = @user.portability_collection_exportable_data()
|
37
|
+
assert collection.is_a?(Array)
|
38
|
+
|
39
|
+
assert collection.size == 10
|
40
|
+
|
41
|
+
collection = @user.portability_collection_exportable_data(2)
|
42
|
+
assert collection.last == 20
|
43
|
+
end
|
44
|
+
|
45
|
+
it "return a member" do
|
46
|
+
User.any_instance.stubs(:account_data).returns({name: "foo", last_name: "bar"} )
|
47
|
+
@user = User.create(email: "a@a.cl")
|
48
|
+
assert !@user.errors.any?
|
49
|
+
|
50
|
+
member = @user.portability_member_my_account()
|
51
|
+
assert member.is_a?(Hash)
|
52
|
+
|
53
|
+
member = @user.portability_member_my_account()
|
54
|
+
assert member[:name] == "foo"
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PolicyManager::Term do
|
4
|
+
|
5
|
+
before :each do
|
6
|
+
@config = PolicyManager::Config.setup do |c|
|
7
|
+
c.add_rule({name: "age", validates_on: [:create, :update] })
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it "will require a rule" do
|
12
|
+
t = PolicyManager::Term.create(description: "aaa")
|
13
|
+
assert t.persisted? == false
|
14
|
+
assert t.errors.any? == true
|
15
|
+
assert t.errors[:rule].any? == true
|
16
|
+
end
|
17
|
+
|
18
|
+
it "create ok" do
|
19
|
+
t = PolicyManager::Term.create(description: "aaa", rule: config.rules.first.name)
|
20
|
+
assert t.persisted? == true
|
21
|
+
end
|
22
|
+
|
23
|
+
it "get rule as an instance of Rule" do
|
24
|
+
t = PolicyManager::Term.create(description: "aaa", rule: config.rules.first.name)
|
25
|
+
assert t.persisted? == true
|
26
|
+
assert t.rule.instance_of?(PolicyManager::Rule) == true
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
|
4
|
+
describe User do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@config = PolicyManager::Config.setup do |c|
|
8
|
+
c.add_rule({name: "age", validates_on: [:create, :update], if: ->(o){ o.enabled_for_validation } })
|
9
|
+
c.from_email = "foo@bar.org"
|
10
|
+
c.admin_email_inbox = "foo@baaz.org"
|
11
|
+
c.user_language_method = -> (o){ o.lang }
|
12
|
+
c.exporter = {
|
13
|
+
path: Rails.root + "tmp/export",
|
14
|
+
resource: User ,
|
15
|
+
index_template: '<h1>index template, custom</h1>
|
16
|
+
<ul>
|
17
|
+
<% @collection.each do |rule| %>
|
18
|
+
<li><%= link_to rule.name, "./#{rule.name}/index.html" %></li>
|
19
|
+
<% end %>
|
20
|
+
</ul>',
|
21
|
+
layout: "portability",
|
22
|
+
after_zip: ->(zip_path, resource){
|
23
|
+
puts "THIS IS GREAT #{zip_path} was zipped, now what ??"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
if defined?(User)
|
29
|
+
Object.send(:remove_const, :User)
|
30
|
+
load Rails.root + 'app/models/user.rb'
|
31
|
+
end
|
32
|
+
|
33
|
+
pr = PolicyManager::Term.create(description: "el", rule: "age")
|
34
|
+
pr.publish!
|
35
|
+
end
|
36
|
+
|
37
|
+
it "dummy user creation with validation rules" do
|
38
|
+
user = User.create(email: "a@a.cl")
|
39
|
+
assert user.errors.any?
|
40
|
+
assert user.errors[:policy_rule_age].present?
|
41
|
+
user = User.create(email: "a@a.cl", policy_rule_age: true)
|
42
|
+
assert user.persisted?
|
43
|
+
end
|
44
|
+
|
45
|
+
it "dummy user creation without validation rules (if)" do
|
46
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
47
|
+
user = User.create(email: "a@a.cl")
|
48
|
+
assert !user.errors.any?
|
49
|
+
end
|
50
|
+
|
51
|
+
it "get policies on empty terms will not return pending policies" do
|
52
|
+
user = User.create(email: "a@a.cl", policy_rule_age: true)
|
53
|
+
assert user.pending_policies.size == 0
|
54
|
+
end
|
55
|
+
|
56
|
+
it "has_consented_meth?" do
|
57
|
+
user = User.create(email: "a@a.cl", policy_rule_age: true)
|
58
|
+
assert user.has_consented_age?
|
59
|
+
end
|
60
|
+
|
61
|
+
it "create without policy" do
|
62
|
+
user = User.create(email: "a@a.cl")
|
63
|
+
assert user.errors.any?
|
64
|
+
end
|
65
|
+
|
66
|
+
it "get policies on existing terms will return pending policies" do
|
67
|
+
pr = PolicyManager::Term.create(description: "aaa", rule: config.rules.first.name)
|
68
|
+
pr.publish!
|
69
|
+
user = User.create(email: "a@a.cl", policy_rule_age: true)
|
70
|
+
pr = PolicyManager::Term.create(description: "version 2", rule: "age")
|
71
|
+
pr.publish!
|
72
|
+
assert user.pending_policies.size == 1
|
73
|
+
assert user.needs_policy_confirmation_for?(config.rules.first.name)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "accept policies will empty pending policies" do
|
77
|
+
pr = PolicyManager::Term.create(description: "aaa", rule: config.rules.first.name)
|
78
|
+
pr.publish!
|
79
|
+
user = User.create(email: "a@a.cl", policy_rule_age: true)
|
80
|
+
pr = PolicyManager::Term.create(description: "version 2", rule: "age")
|
81
|
+
pr.publish!
|
82
|
+
assert user.pending_policies.size == 1
|
83
|
+
user_term = user.handle_policy_for(config.rules.first.terms.last)
|
84
|
+
user_term.accept!
|
85
|
+
assert user.pending_policies.size == 0
|
86
|
+
end
|
87
|
+
|
88
|
+
it "can request portability" do
|
89
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
90
|
+
user = User.create(email: "a@a.cl")
|
91
|
+
assert !user.errors.any?
|
92
|
+
assert user.can_request_portability?
|
93
|
+
preq = user.portability_requests.create
|
94
|
+
preq.confirm!
|
95
|
+
end
|
96
|
+
|
97
|
+
it "can't request portability if has one pending" do
|
98
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
99
|
+
user = User.create(email: "a@a.cl")
|
100
|
+
assert !user.errors.any?
|
101
|
+
assert user.can_request_portability?
|
102
|
+
preq = user.portability_requests.create
|
103
|
+
assert !user.can_request_portability?
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
it "can't request portability if has one in progress" do
|
108
|
+
User.any_instance.stubs(:enabled_for_validation).returns(false)
|
109
|
+
user = User.create(email: "a@a.cl")
|
110
|
+
assert !user.errors.any?
|
111
|
+
assert user.can_request_portability?
|
112
|
+
preq = user.portability_requests.create
|
113
|
+
preq.confirm!
|
114
|
+
assert !user.can_request_portability?
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
|
2
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
3
|
+
require 'spec_helper'
|
4
|
+
ENV['RAILS_ENV'] ||= 'test'
|
5
|
+
#require File.expand_path('../../config/environment', __FILE__)
|
6
|
+
# Prevent database truncation if the environment is production
|
7
|
+
|
8
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
9
|
+
|
10
|
+
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
11
|
+
require 'rspec/rails'
|
12
|
+
# Add additional requires below this line. Rails is not loaded until this point!
|
13
|
+
|
14
|
+
ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
|
15
|
+
|
16
|
+
require 'coveralls'
|
17
|
+
Coveralls.wear!
|
18
|
+
|
19
|
+
# Requires supporting ruby files with custom matchers and macros, etc, in
|
20
|
+
# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
|
21
|
+
# run as spec files by default. This means that files in spec/support that end
|
22
|
+
# in _spec.rb will both be required and run as specs, causing the specs to be
|
23
|
+
# run twice. It is recommended that you do not name files matching this glob to
|
24
|
+
# end with _spec.rb. You can configure this pattern with the --pattern
|
25
|
+
# option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
|
26
|
+
#
|
27
|
+
# The following line is provided for convenience purposes. It has the downside
|
28
|
+
# of increasing the boot-up time by auto-requiring all files in the support
|
29
|
+
# directory. Alternatively, in the individual `*_spec.rb` files, manually
|
30
|
+
# require only the support files necessary.
|
31
|
+
#
|
32
|
+
# Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
33
|
+
|
34
|
+
# Checks for pending migrations and applies them before tests are run.
|
35
|
+
# If you are not using ActiveRecord, you can remove this line.
|
36
|
+
ActiveRecord::Migration.maintain_test_schema!
|
37
|
+
|
38
|
+
RSpec.configure do |config|
|
39
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
40
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
41
|
+
|
42
|
+
|
43
|
+
#config.include PolicyManager::Engine.routes.url_helpers
|
44
|
+
|
45
|
+
config.before(:suite) do
|
46
|
+
DatabaseCleaner.strategy = :transaction
|
47
|
+
DatabaseCleaner.clean_with(:truncation)
|
48
|
+
end
|
49
|
+
|
50
|
+
config.around(:each) do |example|
|
51
|
+
DatabaseCleaner.cleaning do
|
52
|
+
example.run
|
53
|
+
end
|
54
|
+
end
|
55
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
56
|
+
# examples within a transaction, remove the following line or assign false
|
57
|
+
# instead of true.
|
58
|
+
config.use_transactional_fixtures = true
|
59
|
+
|
60
|
+
# RSpec Rails can automatically mix in different behaviours to your tests
|
61
|
+
# based on their file location, for example enabling you to call `get` and
|
62
|
+
# `post` in specs under `spec/controllers`.
|
63
|
+
#
|
64
|
+
# You can disable this behaviour by removing the line below, and instead
|
65
|
+
# explicitly tag your specs with their type, e.g.:
|
66
|
+
#
|
67
|
+
# RSpec.describe UsersController, :type => :controller do
|
68
|
+
# # ...
|
69
|
+
# end
|
70
|
+
#
|
71
|
+
# The different available types are documented in the features, such as in
|
72
|
+
# https://relishapp.com/rspec/rspec-rails/docs
|
73
|
+
config.infer_spec_type_from_file_location!
|
74
|
+
|
75
|
+
# Filter lines from Rails gems in backtraces.
|
76
|
+
config.filter_rails_from_backtrace!
|
77
|
+
# arbitrary gems may also be filtered via:
|
78
|
+
# config.filter_gems_from_backtrace("gem name")
|
79
|
+
end
|