openstax_accounts 7.2.0 → 7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -7
  3. data/app/controllers/openstax/accounts/sessions_controller.rb +4 -1
  4. data/app/models/openstax/accounts/account.rb +21 -7
  5. data/app/models/openstax/accounts/group.rb +6 -6
  6. data/app/models/openstax/accounts/group_member.rb +4 -4
  7. data/app/models/openstax/accounts/group_nesting.rb +5 -5
  8. data/app/models/openstax/accounts/group_owner.rb +4 -4
  9. data/app/routines/openstax/accounts/dev/create_account.rb +4 -4
  10. data/app/routines/openstax/accounts/sync_accounts.rb +2 -2
  11. data/db/migrate/0_create_openstax_accounts_accounts.rb +1 -1
  12. data/db/migrate/1_create_openstax_accounts_groups.rb +1 -1
  13. data/db/migrate/2_create_openstax_accounts_group_members.rb +1 -1
  14. data/db/migrate/3_create_openstax_accounts_group_owners.rb +1 -1
  15. data/db/migrate/4_create_openstax_accounts_group_nestings.rb +1 -1
  16. data/db/migrate/7_change_accounts_openstax_uid_to_be_nullable.rb +5 -0
  17. data/db/migrate/8_change_accounts_username_to_be_nullable.rb +5 -0
  18. data/lib/openstax/accounts/action_controller/base.rb +12 -2
  19. data/lib/openstax/accounts/configuration.rb +5 -0
  20. data/lib/openstax/accounts/engine.rb +15 -3
  21. data/lib/openstax/accounts/version.rb +1 -1
  22. data/spec/controllers/openstax/accounts/forwards_params_spec.rb +68 -0
  23. data/spec/dummy/config.ru +1 -0
  24. data/spec/dummy/db/development.sqlite3 +0 -0
  25. data/spec/dummy/db/migrate/1000_create_users.rb +2 -2
  26. data/spec/dummy/db/migrate/1001_create_ownerships.rb +3 -3
  27. data/spec/dummy/db/schema.rb +23 -23
  28. data/spec/dummy/db/test.sqlite3 +0 -0
  29. data/spec/dummy/log/development.log +4946 -399
  30. data/spec/dummy/log/test.log +14740 -94815
  31. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-4/-4AigB7SRNxiHWeamN5uh_JTU4pT-99hUByQ7hhtfM4.cache +1 -0
  32. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-B/-BM2LkGo9LiZel0dx2cTeIoUiOvZvzvQX-qrY-PefDc.cache +0 -0
  33. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0d/0dqBuwbmRqLO9AM5KdttlIvUSbOG2uS9fJsm4TRuY8M.cache +0 -0
  34. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/1b/1bCIjOPcmZWjhnOiOIrEUVDFzGzCezkm0dIrzY7q22A.cache +2 -0
  35. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2GcGY034bmlAWeI-bC8yjSfggr98_D1ysvB0hcR9PaI.cache +3 -0
  36. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2gGPkwl7LddZxTKkA0XQ6NKsdgK7mDG6PfvKrqKYsAs.cache +0 -0
  37. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/4W/4WJLh0PRMuTwbFf44QcjwkcJ57BXKVgwtaRnUiMxlbc.cache +1 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5T/5TLgAp4XC6JjXz-MP4IR8UIli3l091nGGpp0xomd_g0.cache +0 -0
  39. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5g/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache +2 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5u/5uKXJe6QpDEzhvxGUSwHZS2uGrjr0-ex9LVlRQZaQnI.cache +1 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6H/6HAlvBZ_na7ir9ELSAcCJ1GTAwGaO565PgVOt7rgitw.cache +1 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6b/6bUhHw6Kpj9FgN8vIU0BBQNdA1sgsa0pyhDOdq4U1a8.cache +2 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8whA2ROqlMHhJJiXDf0onGPb8mLmBGb5UUPY7yZZuMs.cache +1 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9S/9SfcyOi0r3UamY1lEOb94zdm_ybDACE3pzfyMeUnoJc.cache +0 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfzRuN8Wm6MIHDZEpwWkiSl3zNDMJ1tOvSt2SOmVCio.cache +1 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DB/DB4PIoupKZcosm_IvLp0-MJ1hiXfVw01ZdY1IOnnPsE.cache +0 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/DR/DRPKqdpBdXQEzG7sFT6-8d_LgGF72B8IFqYLhVsyNqw.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Dh/DhSAf3h0VMpFRp_tvO8VIqn12P-Mnp3WFyVH4ORR-gs.cache +0 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/E3/E35l_cFnSYnnYWJwxWXR76R17KJ3tqL_-UG0Tjrp5DI.cache +0 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETdvBR0__vhxzfl_I4mu0h3Jrcwy0jvIvEf-AcGHuxU.cache +1 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/EZ/EZkBau1uUbmU8TAtNy_21ZEq6hQ-pQY-jNbMnaAlNYM.cache +1 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/IV/IVl_wFSpYKfB-OI07E_GP9JLqGpf6VStaDO-Pl-EcUA.cache +1 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/It/ItWlWNmHD7ZeVOFbsyan26cbPWTR9XFqNBmZhIsyr8k.cache +2 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JB/JBrtwWy2SgF1Nl6siXGeTqdnlMdXo6F-OOkAKCHx3gw.cache +1 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Je/JeDnsbKYU6WfXwmBfUedz09ThQX9iPI8-sgit9Um1yE.cache +1 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jr/JrzNmQmTkr6QS1BoAOEeGnCip0CCneRNMyvtaelWV1w.cache +2 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KE/KEIyyOl_ruT7KuaNvukGN8LnSUVMk4MQmDUOg9oo0XE.cache +0 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/LK/LK8fShpIirD6_e29A0YY7pTPZbISgiHuY3QOMzj-c4c.cache +1 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lr/LrK9U2KWZskR0G2rWalGnOM8fgZvGwEajG7_WYkK-Rc.cache +1 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHc26ZBwFN93Q3ggSv0QW4WDhXzTQV6YvzIUUt6Su7Q.cache +1 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nj/NjMmwEjtqJiXWQtb2qVmb2Js1DikSD_MgMHDlCNzLP4.cache +1 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q1/Q1IElAqy9O60bh7c8syJLSGSTIxOL_WDNftM2SNTsgI.cache +1 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QW/QWLUd5oxFsWTwKa1IXwWsaP8RlLh_GMPdypbqJx0VoA.cache +1 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/TZ/TZlHN1bHx2lwu7SRM5Y3Qp_OpbrtidFt-6223MTPMH4.cache +1 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/VN/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache +2 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/WX/WXy-lTrCCH38uK_ld4QeQrhZuZZDOyHGBBrhZ0PDZyY.cache +2 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yr/YrbMyaVyJ69SVCY3y1ZPJAdUcuUpzzHP7LMQNT2pGfk.cache +1 -0
  68. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Z-/Z-tPXaNX9WvhVHKT_twh9-sJ_NvUPatXyDZ48rWasiE.cache +0 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/aYOmaJvT9wpA9a2IfP3f-6A6guRGAezZCHz_3lSCE0A.cache +1 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/ayvQApV55-bf3brcKBVUc8_o-8aLmUhKYv9b7OPRXV8.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bR/bRCnhDQ4uJkiX7RMvyDbsvopysp32eYxD0SYAsEpDzc.cache +1 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bz/bzY1-207qUxPHd6HAeNvY34UEmIZlAnGJUuiwkGLqTw.cache +0 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/cj/cjLyKHfhNSrjEff7p2VGJz6ColftKx69unhJqv0UK1g.cache +2 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/e2/e28DqqHF8GN5VTAz03mRnOV5AV_np1CNwB_xuV03NUw.cache +0 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hh/hh_1YpicqmoKC8uz92Sh3iba0TBhh9GEXtUyrUlEzEU.cache +0 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iK/iKFb6K0z7xwr53FXp9Qy4qO5L6lryDOpXjMnw-48oVg.cache +2 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jn/jnRNObm7DziGmbZR3TPAC-vAE-qmrP0tLBH9W9m6yJs.cache +0 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kS/kSXVJZ4BJAsy2L9DxKUntzr90Nd9VWD0G7L2n05ISOw.cache +1 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/kq/kq0VL9PQ2HRlksqNC7YPlqlWFBvkHk2uIac_HZb0wEE.cache +1 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l0/l0BYOaBq08_FGl4jzpCnd80-zLPHNMXs7xCHtqTcUVI.cache +0 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lx/lxYKD42Es9n2EKrNchxPYKveAzYo6VAGr_CxhxvyO-c.cache +0 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mW/mWLVMCpv8dHPkBK4y4SLLXukqtLhRXWtNC3gm5vgwPk.cache +3 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mx/mxoipKjbqPo_gvG86AgUPk6o6-OB-uqI5sGMnNqGW4A.cache +1 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nZ/nZY2kcE7t2EMdrdtEQueW9UYmtEBjQv3FNpous5k1tM.cache +2 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/o3/o3Bz1eWxZ7poUlQGzlkJX5fFeNxKD5VEuFZSctl6Oe4.cache +1 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/p-/p-j1kEkMIDywvXn2EG-FF_CVz9U75IYIDMJj4U2ksCk.cache +2 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZXUaTdXV2XMj_KgBsHVED1ocjtpQrIqBR3lGYSMZVc.cache +2 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q6/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache +2 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r0/r0S88W86F754buOO-eLMVX5f9YdQzd-ZkpvwEJc6hAg.cache +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/r3/r3X66JZPGDKB-xMv9rLIyo0WKYWnPrSB2qL0giC2T6g.cache +0 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/t7/t7deseLVHWCZ7z2LMl1YvpZi-RIhvURhm0-MSDE3qvY.cache +0 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tl/tl1nInky090OX02bJpJWDa-RFuv1vogrbeY5T4K1M_Q.cache +0 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uf/uf8xlrN24XDdqvg97XSNrPFSYWGELN2cEHkKsu52zJQ.cache +3 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wD/wDQfpqPktQEUJYqGBoTlKAOHJhn7hzFSg9lUtfzUSHM.cache +1 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache +2 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/y4/y4wKs_D3Zp3A5ItE5hfD5dkJEr-mnvfyNon1lhrxKKY.cache +3 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yp/yp55Nm9xYM0wvHSoLvfP6mrhrUIKrig6v9Q_Yb0kZpQ.cache +0 -0
  98. data/spec/handlers/openstax/accounts/sessions_callback_spec.rb +10 -0
  99. data/spec/models/openstax/accounts/account_spec.rb +87 -7
  100. data/spec/spec_helper.rb +18 -3
  101. metadata +141 -3
@@ -0,0 +1 @@
1
+ "%]�6 h�E�ȸ�TNZ�V/] M��k ^�
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css;TTI"4file-digest://app/assets/javascripts/doorkeeper;TTI"Bfile-digest://app/assets/javascripts/doorkeeper/bootstrap.min;TTI"4file-digest://app/assets/stylesheets/doorkeeper;TTI"Bfile-digest://app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"}file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin;TT
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js;TT
@@ -0,0 +1 @@
1
+ I"�/Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/application.css?type=text/css&pipeline=self&id=b9d966017f73bd9165e987374887f90ddd4bd3c3d90a68972b943acd2e010845:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js;TTI")file-digest://app/assets/javascripts;TTI"0file-digest://app/assets/javascripts/jquery;TTI")file-digest://app/assets/stylesheets;TTI"0file-digest://app/assets/stylesheets/jquery;TTI"yfile-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts;TTI"{file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery;TTI"4file-digest://app/assets/javascripts/jquery_ujs;TTI"4file-digest://app/assets/stylesheets/jquery_ujs;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs;TT
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css?type=text/css&id=04827890303691069fc20e3bfad1064fc59fa269653008eb64beb5a264f82bff:ET
@@ -0,0 +1 @@
1
+ I"�/Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts/application.js?type=application/javascript&pipeline=self&id=d3373f5ecc84c1ab213ed982a2e670a761262cd2af6642b4dc27cf4157c9a28d:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css;TTI"4file-digest://app/assets/javascripts/doorkeeper;TTI"Bfile-digest://app/assets/javascripts/doorkeeper/bootstrap.min;TTI"4file-digest://app/assets/stylesheets/doorkeeper;TTI"Bfile-digest://app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"}file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css;TT
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js?type=application/javascript&pipeline=self&id=11bc1d2a3c5ed258629d4ac7984c7ff413b375f7c9e44c00cc8b7def4b2394fc:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=65124048a3c0f1e06bd5309ee7e1788a6c1e00f3a445e9cc3f3687a431cc6ca9:ET
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css?type=text/css&pipeline=self&id=a07f4f5eb26def495d9e5b6a08a65bdc5f613153b5391dbbad50a2fa82d7291c:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=512fd99c7bc5e2fb035681aa4e9da48d84242be824cc6041a3ad17ea80e79a58:ET
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/application.css?type=text/css&pipeline=self&id=19235c2c5e0788f2b7abf9ca4e09c7368c66c4f75db39ed30a5906c5268b3b48:ET
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/application.css?type=text/css&id=a7150f6a6081716a581d04d5a283ffcc15e0fbfc9a40043f0a6d8fa45140bb65:ET
@@ -0,0 +1 @@
1
+ "%ʹ��L�#Z�v%������%�:�T)�:�(�O
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"qfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"~file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js;TTI")file-digest://app/assets/javascripts;TTI"0file-digest://app/assets/javascripts/jquery;TTI")file-digest://app/assets/stylesheets;TTI"0file-digest://app/assets/stylesheets/jquery;TTI"yfile-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts;TTI"{file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery;TTI"4file-digest://app/assets/javascripts/jquery_ujs;TTI"4file-digest://app/assets/stylesheets/jquery_ujs;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs;TTI"bfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts;TT
@@ -0,0 +1 @@
1
+ "%���%p'�&�p؀ɴֵ���8h���
@@ -0,0 +1 @@
1
+ I"�/Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts/application.js?type=application/javascript&id=d2ac015302861abd795e6c75bbc6781867b7d20bfa1144ff93734f8af65faedd:ET
@@ -0,0 +1 @@
1
+ "%C6������ܦ�M=��Qu���/�,"c�5u
@@ -0,0 +1 @@
1
+ "%&��P�`���_������MLH���O8�~�
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css?type=text/css&pipeline=self&id=be56f6948f8eba84ddd680357f48de45aa724989b747a510d3dac55ed066230a:ET
@@ -0,0 +1 @@
1
+ "%xJ�g&k��"��U���m��X�V�;Fj
@@ -0,0 +1 @@
1
+ "%uW��l��j��Z� xU��>�?]��pc��s
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TTI"0file-digest://app/assets/javascripts/jquery;TTI")file-digest://app/assets/stylesheets;TTI"0file-digest://app/assets/stylesheets/jquery;TTI"yfile-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts;TTI"{file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery;TTI"~file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js;TTI"4file-digest://app/assets/javascripts/jquery_ujs;TTI"4file-digest://app/assets/stylesheets/jquery_ujs;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js;TT
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"rfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/application.css;TTI"bfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts;TTI"ofile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/dev.css.scss;TT
@@ -0,0 +1 @@
1
+ "%|�<�i�Xc�0�ګ��r�.Cn���WJ�
@@ -0,0 +1 @@
1
+ I"}app/assets/stylesheets/application.css?type=text/css&id=86078f68c5fea8bf5ed3835378e94ec84b231d596668ccce9dc36c7384ffcf03:ET
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1 @@
1
+ I"�/Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/dev.css.scss?type=text/css&pipeline=self&id=b4fb9809e1ff63db3948d79802d9c279ffb4781d5b8398a32ac275846adc763a:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css;TTI"4file-digest://app/assets/javascripts/doorkeeper;TTI"Bfile-digest://app/assets/javascripts/doorkeeper/bootstrap.min;TTI"4file-digest://app/assets/stylesheets/doorkeeper;TTI"Bfile-digest://app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"}file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin;TT
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"qfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts/application.js;TTI")file-digest://app/assets/javascripts;TTI"0file-digest://app/assets/javascripts/jquery;TTI")file-digest://app/assets/stylesheets;TTI"0file-digest://app/assets/stylesheets/jquery;TTI"yfile-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts;TTI"{file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery;TTI"~file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js;TTI"4file-digest://app/assets/javascripts/jquery_ujs;TTI"4file-digest://app/assets/stylesheets/jquery_ujs;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js;TTI"bfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/openstax/accounts;TT
@@ -0,0 +1 @@
1
+ I"�/Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery.js?type=application/javascript&pipeline=self&id=f51f7a7a11c633b8abdb435394ab39879bf4b13302f7bbd28b82a4f2e492bd4e:ET
@@ -0,0 +1 @@
1
+ "%|�<�i�Xc�0�ګ��r�.Cn���WJ�
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TTI"ofile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/dev.css.scss;TT
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=fdc31d4c6b0828f9a82ce2b4e961f2056159e717b2a068023daa0a6ad2bfc556:ET
@@ -0,0 +1,2 @@
1
+ "%I�}�
2
+ t �Q}��"�E���߰^ s�..� �
@@ -0,0 +1 @@
1
+ I"�/Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/application.css?type=text/css&id=eea8c319ad0901d564481f7c581f607d3af5c95f52f658ba0ecd5551dc5d62c0:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"rfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"bfile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts;TTI"ofile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/openstax/accounts/dev.css.scss;TTI"Lprocessors:type=text/css&file_type=text/css&engines=.scss&pipeline=self;TT
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/application.css;TTI"4file-digest://app/assets/javascripts/doorkeeper;TTI"Bfile-digest://app/assets/javascripts/doorkeeper/bootstrap.min;TTI"4file-digest://app/assets/stylesheets/doorkeeper;TTI"Bfile-digest://app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/javascripts/doorkeeper/bootstrap.min;TTI"[file-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper;TTI"ifile-digest:///Users/jps/dev/openstax/accounts-rails/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/bootstrap.min;TTI"}file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/app/assets/stylesheets/doorkeeper/admin/application.css;TT
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"9file-digest://app/assets/stylesheets/application.css;TTI")file-digest://app/assets/stylesheets;TT
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/jquery-rails-4.2.1/vendor/assets/javascripts/jquery_ujs.js;TT
@@ -0,0 +1 @@
1
+ "%�sD��=��Q����s�\uR�SY���� 3+
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TT
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"�file-digest:///Users/jps/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/doorkeeper-4.2.0/vendor/assets/stylesheets/doorkeeper/bootstrap.min.css;TT
@@ -17,6 +17,16 @@ module OpenStax
17
17
  result = described_class.handle(request: request)
18
18
  expect(result.outputs.account).to be_no_faculty_info
19
19
  end
20
+
21
+ it "should deal with null nickname" do
22
+ with_stubbing(false) do
23
+ request = mock_omniauth_request
24
+ remove_nickname!(request)
25
+ result = described_class.handle(request: request)
26
+ expect(result.outputs.account).to be_valid
27
+ expect(result.outputs.account).to be_persisted
28
+ end
29
+ end
20
30
  end
21
31
 
22
32
  end
@@ -1,20 +1,100 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  module OpenStax::Accounts
4
- describe Account do
4
+ RSpec.describe Account do
5
+ subject(:account) { FactoryGirl.create(:openstax_accounts_account) }
6
+
5
7
  context 'validation' do
6
- it 'requires a unique openstax_uid' do
7
- account = FactoryGirl.build(:openstax_accounts_account, openstax_uid: nil)
8
- expect(account).not_to be_valid
9
- expect(account.errors[:openstax_uid]).to eq(['can\'t be blank'])
8
+ it 'requires a unique openstax_uid, if given' do
9
+ account.openstax_uid = nil
10
+ expect(account).to be_valid
10
11
 
11
- account.openstax_uid = 1
12
+ account.openstax_uid = -1
12
13
  account.save!
13
14
 
14
- account_2 = FactoryGirl.build(:openstax_accounts_account, openstax_uid: 1)
15
+ account_2 = FactoryGirl.build(:openstax_accounts_account, openstax_uid: -1)
15
16
  expect(account_2).not_to be_valid
16
17
  expect(account_2.errors[:openstax_uid]).to eq(['has already been taken'])
17
18
  end
19
+
20
+ it 'allows nil username' do
21
+ account.username = nil
22
+ expect(account).to be_valid
23
+ end
24
+
25
+ it 'requires unique username if not nil' do
26
+ expect{
27
+ FactoryGirl.create(:openstax_accounts_account, username: account.username)
28
+ }.to raise_error(ActiveRecord::RecordInvalid)
29
+ end
30
+
31
+ it 'allows multiple accounts saved with nil username' do
32
+ FactoryGirl.create(:openstax_accounts_account, username: nil)
33
+ expect{
34
+ FactoryGirl.create(:openstax_accounts_account, username: nil)
35
+ }.not_to raise_error
36
+ end
37
+ end
38
+
39
+ context 'updates' do
40
+ before do
41
+ account.syncing = false
42
+ account.openstax_uid = 1
43
+ end
44
+
45
+ context 'stubbing' do
46
+ it 'does not send updates to accounts' do
47
+ expect(OpenStax::Accounts::Api).not_to receive(:update_account)
48
+
49
+ account.username = 'Stubbed User'
50
+ account.save!
51
+ end
52
+ end
53
+
54
+ context 'not stubbing' do
55
+ before(:all) { OpenStax::Accounts.configuration.enable_stubbing = false }
56
+ after(:all) { OpenStax::Accounts.configuration.enable_stubbing = true }
57
+
58
+ context 'syncing' do
59
+ before{ account.syncing = true }
60
+
61
+ it 'does not send updates to accounts' do
62
+ expect(OpenStax::Accounts::Api).not_to receive(:update_account)
63
+
64
+ account.username = 'Syncing User'
65
+ account.save!
66
+ end
67
+ end
68
+
69
+ context 'not syncing' do
70
+ context 'invalid openstax_uid' do
71
+ it 'does not send updates to accounts' do
72
+ expect(OpenStax::Accounts::Api).not_to receive(:update_account)
73
+
74
+ account.openstax_uid = nil
75
+ account.username = 'Nil User'
76
+ account.save!
77
+
78
+ account.openstax_uid = 0
79
+ account.username = 'Zeroth User'
80
+ account.save!
81
+
82
+ account.openstax_uid = -1
83
+ account.username = 'Negative User'
84
+ account.save!
85
+ end
86
+ end
87
+
88
+ context 'valid openstax_uid' do
89
+ it 'sends updates to accounts' do
90
+ expect(OpenStax::Accounts::Api).to receive(:update_account).once
91
+
92
+ account.username = 'Real User'
93
+ account.save!
94
+ end
95
+ end
96
+ end
97
+ end
18
98
  end
19
99
 
20
100
  it 'is not anonymous' do
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,15 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
3
  require File.expand_path('../dummy/config/environment.rb', __FILE__)
4
+
4
5
  require 'rspec/rails'
5
- require 'rspec/autorun'
6
6
  require 'factory_girl_rails'
7
7
 
8
- # Requires supporting ruby files with custom matchers and macros, etc,
9
8
  Rails.backtrace_cleaner.remove_silencers!
10
9
 
10
+ ActiveRecord::Migration.maintain_test_schema!
11
+
12
+ # Requires supporting ruby files with custom matchers and macros, etc,
11
13
  # in spec/support/ and its subdirectories.
12
14
  Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
13
15
 
@@ -37,7 +39,7 @@ RSpec.configure do |config|
37
39
  # order dependency and want to debug it, you can fix the order by providing
38
40
  # the seed, which is printed after each run.
39
41
  # --seed 1234
40
- config.order = "random"
42
+ config.order = :random
41
43
  end
42
44
 
43
45
 
@@ -72,3 +74,16 @@ def remove_faculty_status!(omniauth_request)
72
74
  omniauth_request.env["omniauth.auth"].extra.raw_info.delete("faculty_status")
73
75
  end
74
76
 
77
+ def remove_nickname!(omniauth_request)
78
+ omniauth_request.env["omniauth.auth"].info.nickname = nil
79
+ end
80
+
81
+ def with_stubbing(value)
82
+ begin
83
+ original = OpenStax::Accounts.configuration.enable_stubbing
84
+ OpenStax::Accounts.configuration.enable_stubbing = value
85
+ yield
86
+ ensure
87
+ OpenStax::Accounts.configuration.enable_stubbing = original
88
+ end
89
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_accounts
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.0
4
+ version: 7.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-28 00:00:00.000000000 Z
11
+ date: 2016-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -368,6 +368,8 @@ files:
368
368
  - db/migrate/4_create_openstax_accounts_group_nestings.rb
369
369
  - db/migrate/5_add_faculty_status_to_accounts_accounts.rb
370
370
  - db/migrate/6_add_salesforce_contact_id_to_accounts_accounts.rb
371
+ - db/migrate/7_change_accounts_openstax_uid_to_be_nullable.rb
372
+ - db/migrate/8_change_accounts_username_to_be_nullable.rb
371
373
  - lib/generators/openstax/accounts/schedule/USAGE
372
374
  - lib/generators/openstax/accounts/schedule/schedule_generator.rb
373
375
  - lib/generators/openstax/accounts/schedule/templates/schedule.rb
@@ -384,6 +386,7 @@ files:
384
386
  - lib/tasks/sync.rake
385
387
  - spec/cassettes/OpenStax_Accounts_FindOrCreateAccount/can_create_users.yml
386
388
  - spec/controllers/openstax/accounts/dev/accounts_controller_spec.rb
389
+ - spec/controllers/openstax/accounts/forwards_params_spec.rb
387
390
  - spec/controllers/openstax/accounts/sessions_controller_spec.rb
388
391
  - spec/controllers/openstax/accounts/uses_this_engine_controller_spec.rb
389
392
  - spec/dummy/README.md
@@ -439,6 +442,73 @@ files:
439
442
  - spec/dummy/public/500.html
440
443
  - spec/dummy/public/favicon.ico
441
444
  - spec/dummy/script/rails
445
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/-4/-4AigB7SRNxiHWeamN5uh_JTU4pT-99hUByQ7hhtfM4.cache
446
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/-B/-BM2LkGo9LiZel0dx2cTeIoUiOvZvzvQX-qrY-PefDc.cache
447
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/0d/0dqBuwbmRqLO9AM5KdttlIvUSbOG2uS9fJsm4TRuY8M.cache
448
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/1b/1bCIjOPcmZWjhnOiOIrEUVDFzGzCezkm0dIrzY7q22A.cache
449
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2GcGY034bmlAWeI-bC8yjSfggr98_D1ysvB0hcR9PaI.cache
450
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2gGPkwl7LddZxTKkA0XQ6NKsdgK7mDG6PfvKrqKYsAs.cache
451
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/4W/4WJLh0PRMuTwbFf44QcjwkcJ57BXKVgwtaRnUiMxlbc.cache
452
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5T/5TLgAp4XC6JjXz-MP4IR8UIli3l091nGGpp0xomd_g0.cache
453
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5g/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache
454
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5u/5uKXJe6QpDEzhvxGUSwHZS2uGrjr0-ex9LVlRQZaQnI.cache
455
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6H/6HAlvBZ_na7ir9ELSAcCJ1GTAwGaO565PgVOt7rgitw.cache
456
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6b/6bUhHw6Kpj9FgN8vIU0BBQNdA1sgsa0pyhDOdq4U1a8.cache
457
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8whA2ROqlMHhJJiXDf0onGPb8mLmBGb5UUPY7yZZuMs.cache
458
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/9S/9SfcyOi0r3UamY1lEOb94zdm_ybDACE3pzfyMeUnoJc.cache
459
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfzRuN8Wm6MIHDZEpwWkiSl3zNDMJ1tOvSt2SOmVCio.cache
460
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/DB/DB4PIoupKZcosm_IvLp0-MJ1hiXfVw01ZdY1IOnnPsE.cache
461
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/DR/DRPKqdpBdXQEzG7sFT6-8d_LgGF72B8IFqYLhVsyNqw.cache
462
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Dh/DhSAf3h0VMpFRp_tvO8VIqn12P-Mnp3WFyVH4ORR-gs.cache
463
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/E3/E35l_cFnSYnnYWJwxWXR76R17KJ3tqL_-UG0Tjrp5DI.cache
464
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETdvBR0__vhxzfl_I4mu0h3Jrcwy0jvIvEf-AcGHuxU.cache
465
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/EZ/EZkBau1uUbmU8TAtNy_21ZEq6hQ-pQY-jNbMnaAlNYM.cache
466
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/IV/IVl_wFSpYKfB-OI07E_GP9JLqGpf6VStaDO-Pl-EcUA.cache
467
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/It/ItWlWNmHD7ZeVOFbsyan26cbPWTR9XFqNBmZhIsyr8k.cache
468
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/JB/JBrtwWy2SgF1Nl6siXGeTqdnlMdXo6F-OOkAKCHx3gw.cache
469
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Je/JeDnsbKYU6WfXwmBfUedz09ThQX9iPI8-sgit9Um1yE.cache
470
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Jr/JrzNmQmTkr6QS1BoAOEeGnCip0CCneRNMyvtaelWV1w.cache
471
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/KE/KEIyyOl_ruT7KuaNvukGN8LnSUVMk4MQmDUOg9oo0XE.cache
472
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/LK/LK8fShpIirD6_e29A0YY7pTPZbISgiHuY3QOMzj-c4c.cache
473
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Lr/LrK9U2KWZskR0G2rWalGnOM8fgZvGwEajG7_WYkK-Rc.cache
474
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHc26ZBwFN93Q3ggSv0QW4WDhXzTQV6YvzIUUt6Su7Q.cache
475
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Nj/NjMmwEjtqJiXWQtb2qVmb2Js1DikSD_MgMHDlCNzLP4.cache
476
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Q1/Q1IElAqy9O60bh7c8syJLSGSTIxOL_WDNftM2SNTsgI.cache
477
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/QW/QWLUd5oxFsWTwKa1IXwWsaP8RlLh_GMPdypbqJx0VoA.cache
478
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/TZ/TZlHN1bHx2lwu7SRM5Y3Qp_OpbrtidFt-6223MTPMH4.cache
479
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/VN/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache
480
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/WX/WXy-lTrCCH38uK_ld4QeQrhZuZZDOyHGBBrhZ0PDZyY.cache
481
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Yr/YrbMyaVyJ69SVCY3y1ZPJAdUcuUpzzHP7LMQNT2pGfk.cache
482
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Z-/Z-tPXaNX9WvhVHKT_twh9-sJ_NvUPatXyDZ48rWasiE.cache
483
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/aYOmaJvT9wpA9a2IfP3f-6A6guRGAezZCHz_3lSCE0A.cache
484
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/ayvQApV55-bf3brcKBVUc8_o-8aLmUhKYv9b7OPRXV8.cache
485
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/bR/bRCnhDQ4uJkiX7RMvyDbsvopysp32eYxD0SYAsEpDzc.cache
486
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/bz/bzY1-207qUxPHd6HAeNvY34UEmIZlAnGJUuiwkGLqTw.cache
487
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/cj/cjLyKHfhNSrjEff7p2VGJz6ColftKx69unhJqv0UK1g.cache
488
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/e2/e28DqqHF8GN5VTAz03mRnOV5AV_np1CNwB_xuV03NUw.cache
489
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/hh/hh_1YpicqmoKC8uz92Sh3iba0TBhh9GEXtUyrUlEzEU.cache
490
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/iK/iKFb6K0z7xwr53FXp9Qy4qO5L6lryDOpXjMnw-48oVg.cache
491
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/jn/jnRNObm7DziGmbZR3TPAC-vAE-qmrP0tLBH9W9m6yJs.cache
492
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kS/kSXVJZ4BJAsy2L9DxKUntzr90Nd9VWD0G7L2n05ISOw.cache
493
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kq/kq0VL9PQ2HRlksqNC7YPlqlWFBvkHk2uIac_HZb0wEE.cache
494
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/l0/l0BYOaBq08_FGl4jzpCnd80-zLPHNMXs7xCHtqTcUVI.cache
495
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/lx/lxYKD42Es9n2EKrNchxPYKveAzYo6VAGr_CxhxvyO-c.cache
496
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mW/mWLVMCpv8dHPkBK4y4SLLXukqtLhRXWtNC3gm5vgwPk.cache
497
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mx/mxoipKjbqPo_gvG86AgUPk6o6-OB-uqI5sGMnNqGW4A.cache
498
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/nZ/nZY2kcE7t2EMdrdtEQueW9UYmtEBjQv3FNpous5k1tM.cache
499
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/o3/o3Bz1eWxZ7poUlQGzlkJX5fFeNxKD5VEuFZSctl6Oe4.cache
500
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/p-/p-j1kEkMIDywvXn2EG-FF_CVz9U75IYIDMJj4U2ksCk.cache
501
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZXUaTdXV2XMj_KgBsHVED1ocjtpQrIqBR3lGYSMZVc.cache
502
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/q6/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache
503
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/r0/r0S88W86F754buOO-eLMVX5f9YdQzd-ZkpvwEJc6hAg.cache
504
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/r3/r3X66JZPGDKB-xMv9rLIyo0WKYWnPrSB2qL0giC2T6g.cache
505
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/t7/t7deseLVHWCZ7z2LMl1YvpZi-RIhvURhm0-MSDE3qvY.cache
506
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/tl/tl1nInky090OX02bJpJWDa-RFuv1vogrbeY5T4K1M_Q.cache
507
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uf/uf8xlrN24XDdqvg97XSNrPFSYWGELN2cEHkKsu52zJQ.cache
508
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/wD/wDQfpqPktQEUJYqGBoTlKAOHJhn7hzFSg9lUtfzUSHM.cache
509
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache
510
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/y4/y4wKs_D3Zp3A5ItE5hfD5dkJEr-mnvfyNon1lhrxKKY.cache
511
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/yp/yp55Nm9xYM0wvHSoLvfP6mrhrUIKrig6v9Q_Yb0kZpQ.cache
442
512
  - spec/factories/openstax_accounts_account.rb
443
513
  - spec/factories/openstax_accounts_group.rb
444
514
  - spec/factories/openstax_accounts_group_member.rb
@@ -480,13 +550,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
480
550
  version: '0'
481
551
  requirements: []
482
552
  rubyforge_project:
483
- rubygems_version: 2.4.8
553
+ rubygems_version: 2.4.5.1
484
554
  signing_key:
485
555
  specification_version: 4
486
556
  summary: Rails common code and bindings for the 'accounts' API
487
557
  test_files:
488
558
  - spec/cassettes/OpenStax_Accounts_FindOrCreateAccount/can_create_users.yml
489
559
  - spec/controllers/openstax/accounts/dev/accounts_controller_spec.rb
560
+ - spec/controllers/openstax/accounts/forwards_params_spec.rb
490
561
  - spec/controllers/openstax/accounts/sessions_controller_spec.rb
491
562
  - spec/controllers/openstax/accounts/uses_this_engine_controller_spec.rb
492
563
  - spec/dummy/app/access_policies/account_access_policy.rb
@@ -542,6 +613,73 @@ test_files:
542
613
  - spec/dummy/Rakefile
543
614
  - spec/dummy/README.md
544
615
  - spec/dummy/script/rails
616
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/-4/-4AigB7SRNxiHWeamN5uh_JTU4pT-99hUByQ7hhtfM4.cache
617
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/-B/-BM2LkGo9LiZel0dx2cTeIoUiOvZvzvQX-qrY-PefDc.cache
618
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/0d/0dqBuwbmRqLO9AM5KdttlIvUSbOG2uS9fJsm4TRuY8M.cache
619
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/1b/1bCIjOPcmZWjhnOiOIrEUVDFzGzCezkm0dIrzY7q22A.cache
620
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2GcGY034bmlAWeI-bC8yjSfggr98_D1ysvB0hcR9PaI.cache
621
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/2G/2gGPkwl7LddZxTKkA0XQ6NKsdgK7mDG6PfvKrqKYsAs.cache
622
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/4W/4WJLh0PRMuTwbFf44QcjwkcJ57BXKVgwtaRnUiMxlbc.cache
623
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5g/5g7dhxVp4YbZmFw_-T3aU2oYq2Z9Jgtps0CKneXYSS0.cache
624
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5T/5TLgAp4XC6JjXz-MP4IR8UIli3l091nGGpp0xomd_g0.cache
625
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/5u/5uKXJe6QpDEzhvxGUSwHZS2uGrjr0-ex9LVlRQZaQnI.cache
626
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6b/6bUhHw6Kpj9FgN8vIU0BBQNdA1sgsa0pyhDOdq4U1a8.cache
627
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/6H/6HAlvBZ_na7ir9ELSAcCJ1GTAwGaO565PgVOt7rgitw.cache
628
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/8w/8whA2ROqlMHhJJiXDf0onGPb8mLmBGb5UUPY7yZZuMs.cache
629
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/9S/9SfcyOi0r3UamY1lEOb94zdm_ybDACE3pzfyMeUnoJc.cache
630
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Af/AfzRuN8Wm6MIHDZEpwWkiSl3zNDMJ1tOvSt2SOmVCio.cache
631
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/aYOmaJvT9wpA9a2IfP3f-6A6guRGAezZCHz_3lSCE0A.cache
632
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ay/ayvQApV55-bf3brcKBVUc8_o-8aLmUhKYv9b7OPRXV8.cache
633
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/bR/bRCnhDQ4uJkiX7RMvyDbsvopysp32eYxD0SYAsEpDzc.cache
634
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/bz/bzY1-207qUxPHd6HAeNvY34UEmIZlAnGJUuiwkGLqTw.cache
635
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/cj/cjLyKHfhNSrjEff7p2VGJz6ColftKx69unhJqv0UK1g.cache
636
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/DB/DB4PIoupKZcosm_IvLp0-MJ1hiXfVw01ZdY1IOnnPsE.cache
637
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Dh/DhSAf3h0VMpFRp_tvO8VIqn12P-Mnp3WFyVH4ORR-gs.cache
638
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/DR/DRPKqdpBdXQEzG7sFT6-8d_LgGF72B8IFqYLhVsyNqw.cache
639
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/e2/e28DqqHF8GN5VTAz03mRnOV5AV_np1CNwB_xuV03NUw.cache
640
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/E3/E35l_cFnSYnnYWJwxWXR76R17KJ3tqL_-UG0Tjrp5DI.cache
641
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/ET/ETdvBR0__vhxzfl_I4mu0h3Jrcwy0jvIvEf-AcGHuxU.cache
642
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/EZ/EZkBau1uUbmU8TAtNy_21ZEq6hQ-pQY-jNbMnaAlNYM.cache
643
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/hh/hh_1YpicqmoKC8uz92Sh3iba0TBhh9GEXtUyrUlEzEU.cache
644
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/iK/iKFb6K0z7xwr53FXp9Qy4qO5L6lryDOpXjMnw-48oVg.cache
645
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/It/ItWlWNmHD7ZeVOFbsyan26cbPWTR9XFqNBmZhIsyr8k.cache
646
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/IV/IVl_wFSpYKfB-OI07E_GP9JLqGpf6VStaDO-Pl-EcUA.cache
647
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/JB/JBrtwWy2SgF1Nl6siXGeTqdnlMdXo6F-OOkAKCHx3gw.cache
648
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Je/JeDnsbKYU6WfXwmBfUedz09ThQX9iPI8-sgit9Um1yE.cache
649
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/jn/jnRNObm7DziGmbZR3TPAC-vAE-qmrP0tLBH9W9m6yJs.cache
650
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Jr/JrzNmQmTkr6QS1BoAOEeGnCip0CCneRNMyvtaelWV1w.cache
651
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/KE/KEIyyOl_ruT7KuaNvukGN8LnSUVMk4MQmDUOg9oo0XE.cache
652
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kq/kq0VL9PQ2HRlksqNC7YPlqlWFBvkHk2uIac_HZb0wEE.cache
653
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/kS/kSXVJZ4BJAsy2L9DxKUntzr90Nd9VWD0G7L2n05ISOw.cache
654
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/l0/l0BYOaBq08_FGl4jzpCnd80-zLPHNMXs7xCHtqTcUVI.cache
655
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/LK/LK8fShpIirD6_e29A0YY7pTPZbISgiHuY3QOMzj-c4c.cache
656
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Lr/LrK9U2KWZskR0G2rWalGnOM8fgZvGwEajG7_WYkK-Rc.cache
657
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/lx/lxYKD42Es9n2EKrNchxPYKveAzYo6VAGr_CxhxvyO-c.cache
658
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/MH/MHc26ZBwFN93Q3ggSv0QW4WDhXzTQV6YvzIUUt6Su7Q.cache
659
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mW/mWLVMCpv8dHPkBK4y4SLLXukqtLhRXWtNC3gm5vgwPk.cache
660
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/mx/mxoipKjbqPo_gvG86AgUPk6o6-OB-uqI5sGMnNqGW4A.cache
661
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Nj/NjMmwEjtqJiXWQtb2qVmb2Js1DikSD_MgMHDlCNzLP4.cache
662
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/nZ/nZY2kcE7t2EMdrdtEQueW9UYmtEBjQv3FNpous5k1tM.cache
663
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/o3/o3Bz1eWxZ7poUlQGzlkJX5fFeNxKD5VEuFZSctl6Oe4.cache
664
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/p-/p-j1kEkMIDywvXn2EG-FF_CVz9U75IYIDMJj4U2ksCk.cache
665
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/pZ/pZXUaTdXV2XMj_KgBsHVED1ocjtpQrIqBR3lGYSMZVc.cache
666
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Q1/Q1IElAqy9O60bh7c8syJLSGSTIxOL_WDNftM2SNTsgI.cache
667
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/q6/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache
668
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/QW/QWLUd5oxFsWTwKa1IXwWsaP8RlLh_GMPdypbqJx0VoA.cache
669
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/r0/r0S88W86F754buOO-eLMVX5f9YdQzd-ZkpvwEJc6hAg.cache
670
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/r3/r3X66JZPGDKB-xMv9rLIyo0WKYWnPrSB2qL0giC2T6g.cache
671
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/t7/t7deseLVHWCZ7z2LMl1YvpZi-RIhvURhm0-MSDE3qvY.cache
672
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/tl/tl1nInky090OX02bJpJWDa-RFuv1vogrbeY5T4K1M_Q.cache
673
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/TZ/TZlHN1bHx2lwu7SRM5Y3Qp_OpbrtidFt-6223MTPMH4.cache
674
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/uf/uf8xlrN24XDdqvg97XSNrPFSYWGELN2cEHkKsu52zJQ.cache
675
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/VN/VNCapNKJLeponthNeFJhaBYs92UBT3P8PugENHP0474.cache
676
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/wD/wDQfpqPktQEUJYqGBoTlKAOHJhn7hzFSg9lUtfzUSHM.cache
677
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/WX/WXy-lTrCCH38uK_ld4QeQrhZuZZDOyHGBBrhZ0PDZyY.cache
678
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache
679
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/y4/y4wKs_D3Zp3A5ItE5hfD5dkJEr-mnvfyNon1lhrxKKY.cache
680
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/yp/yp55Nm9xYM0wvHSoLvfP6mrhrUIKrig6v9Q_Yb0kZpQ.cache
681
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Yr/YrbMyaVyJ69SVCY3y1ZPJAdUcuUpzzHP7LMQNT2pGfk.cache
682
+ - spec/dummy/tmp/cache/assets/sprockets/v3.0/Z-/Z-tPXaNX9WvhVHKT_twh9-sJ_NvUPatXyDZ48rWasiE.cache
545
683
  - spec/factories/openstax_accounts_account.rb
546
684
  - spec/factories/openstax_accounts_group.rb
547
685
  - spec/factories/openstax_accounts_group_member.rb