static 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. checksums.yaml +7 -0
  2. data/bin/static +11 -0
  3. data/lib/static/cli.rb +2 -2
  4. data/lib/static/version.rb +1 -1
  5. data/vendor/cfoundry-0.5.2/LICENSE +746 -0
  6. data/vendor/cfoundry-0.5.2/Rakefile +38 -0
  7. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/applications.rb +53 -0
  8. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/domains.rb +16 -0
  9. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/frameworks.rb +22 -0
  10. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/helper.rb +131 -0
  11. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/login.rb +21 -0
  12. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/organization_users.rb +21 -0
  13. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/organizations.rb +70 -0
  14. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/routes.rb +26 -0
  15. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/runtimes.rb +22 -0
  16. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/service_bindings.rb +22 -0
  17. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/service_instances.rb +22 -0
  18. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/services.rb +25 -0
  19. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/spaces.rb +49 -0
  20. data/vendor/cfoundry-0.5.2/lib/cc_api_stub/users.rb +84 -0
  21. data/vendor/cfoundry-0.5.2/lib/cc_api_stub.rb +17 -0
  22. data/vendor/cfoundry-0.5.2/lib/cfoundry/auth_token.rb +63 -0
  23. data/vendor/cfoundry-0.5.2/lib/cfoundry/baseclient.rb +201 -0
  24. data/vendor/cfoundry-0.5.2/lib/cfoundry/chatty_hash.rb +46 -0
  25. data/vendor/cfoundry-0.5.2/lib/cfoundry/client.rb +46 -0
  26. data/vendor/cfoundry-0.5.2/lib/cfoundry/concerns/login_helpers.rb +13 -0
  27. data/vendor/cfoundry-0.5.2/lib/cfoundry/errors.rb +160 -0
  28. data/vendor/cfoundry-0.5.2/lib/cfoundry/rest_client.rb +299 -0
  29. data/vendor/cfoundry-0.5.2/lib/cfoundry/test_support.rb +3 -0
  30. data/vendor/cfoundry-0.5.2/lib/cfoundry/trace_helpers.rb +40 -0
  31. data/vendor/cfoundry-0.5.2/lib/cfoundry/uaaclient.rb +112 -0
  32. data/vendor/cfoundry-0.5.2/lib/cfoundry/upload_helpers.rb +186 -0
  33. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/app.rb +363 -0
  34. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/base.rb +71 -0
  35. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/client.rb +193 -0
  36. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/framework.rb +21 -0
  37. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/model.rb +178 -0
  38. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/model_magic.rb +129 -0
  39. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/runtime.rb +24 -0
  40. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service.rb +39 -0
  41. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service_instance.rb +32 -0
  42. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/service_plan.rb +19 -0
  43. data/vendor/cfoundry-0.5.2/lib/cfoundry/v1/user.rb +22 -0
  44. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/app.rb +392 -0
  45. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/base.rb +83 -0
  46. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/client.rb +138 -0
  47. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/domain.rb +11 -0
  48. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/framework.rb +14 -0
  49. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/model.rb +148 -0
  50. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/model_magic.rb +449 -0
  51. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/organization.rb +16 -0
  52. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/route.rb +15 -0
  53. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/runtime.rb +12 -0
  54. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service.rb +19 -0
  55. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_auth_token.rb +9 -0
  56. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_binding.rb +10 -0
  57. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_instance.rb +14 -0
  58. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/service_plan.rb +12 -0
  59. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/space.rb +18 -0
  60. data/vendor/cfoundry-0.5.2/lib/cfoundry/v2/user.rb +64 -0
  61. data/vendor/cfoundry-0.5.2/lib/cfoundry/validator.rb +39 -0
  62. data/vendor/cfoundry-0.5.2/lib/cfoundry/version.rb +4 -0
  63. data/vendor/cfoundry-0.5.2/lib/cfoundry/zip.rb +56 -0
  64. data/vendor/cfoundry-0.5.2/lib/cfoundry.rb +2 -0
  65. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/applications_spec.rb +69 -0
  66. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/domains_spec.rb +19 -0
  67. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/frameworks_spec.rb +19 -0
  68. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/login_spec.rb +20 -0
  69. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/organization_users_spec.rb +19 -0
  70. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/organizations_spec.rb +97 -0
  71. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/routes_spec.rb +19 -0
  72. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/runtimes_spec.rb +19 -0
  73. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/service_bindings_spec.rb +13 -0
  74. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/service_instances_spec.rb +19 -0
  75. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/services_spec.rb +12 -0
  76. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/spaces_spec.rb +38 -0
  77. data/vendor/cfoundry-0.5.2/spec/cc_api_stub/users_spec.rb +107 -0
  78. data/vendor/cfoundry-0.5.2/spec/cfoundry/auth_token_spec.rb +125 -0
  79. data/vendor/cfoundry-0.5.2/spec/cfoundry/baseclient_spec.rb +225 -0
  80. data/vendor/cfoundry-0.5.2/spec/cfoundry/client_spec.rb +15 -0
  81. data/vendor/cfoundry-0.5.2/spec/cfoundry/errors_spec.rb +80 -0
  82. data/vendor/cfoundry-0.5.2/spec/cfoundry/rest_client_spec.rb +281 -0
  83. data/vendor/cfoundry-0.5.2/spec/cfoundry/trace_helpers_spec.rb +72 -0
  84. data/vendor/cfoundry-0.5.2/spec/cfoundry/uaaclient_spec.rb +332 -0
  85. data/vendor/cfoundry-0.5.2/spec/cfoundry/upload_helpers_spec.rb +174 -0
  86. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/base_spec.rb +58 -0
  87. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/client_spec.rb +17 -0
  88. data/vendor/cfoundry-0.5.2/spec/cfoundry/v1/model_magic_spec.rb +43 -0
  89. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/app_spec.rb +144 -0
  90. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/base_spec.rb +299 -0
  91. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/client_spec.rb +73 -0
  92. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/model_magic_spec.rb +173 -0
  93. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/organization_spec.rb +15 -0
  94. data/vendor/cfoundry-0.5.2/spec/cfoundry/v2/space_spec.rb +15 -0
  95. data/vendor/cfoundry-0.5.2/spec/fakes/app_fake.rb +5 -0
  96. data/vendor/cfoundry-0.5.2/spec/fakes/domain_fake.rb +5 -0
  97. data/vendor/cfoundry-0.5.2/spec/fakes/framework_fake.rb +5 -0
  98. data/vendor/cfoundry-0.5.2/spec/fakes/organization_fake.rb +5 -0
  99. data/vendor/cfoundry-0.5.2/spec/fakes/route_fake.rb +5 -0
  100. data/vendor/cfoundry-0.5.2/spec/fakes/runtime_fake.rb +5 -0
  101. data/vendor/cfoundry-0.5.2/spec/fakes/service_fake.rb +5 -0
  102. data/vendor/cfoundry-0.5.2/spec/fakes/service_instance_fake.rb +5 -0
  103. data/vendor/cfoundry-0.5.2/spec/fakes/service_plan_fake.rb +5 -0
  104. data/vendor/cfoundry-0.5.2/spec/fakes/space_fake.rb +5 -0
  105. data/vendor/cfoundry-0.5.2/spec/fakes/user_fake.rb +5 -0
  106. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_dotfiles/xyz +1 -0
  107. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_nested_directories/foo/bar/baz/fizz +0 -0
  108. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_nested_directories/xyz +0 -0
  109. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt +1 -0
  110. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/ignored_file.txt +1 -0
  111. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt +1 -0
  112. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt +1 -0
  113. data/vendor/cfoundry-0.5.2/spec/fixtures/apps/with_vmcignore/non_ignored_file.txt +1 -0
  114. data/vendor/cfoundry-0.5.2/spec/fixtures/empty_file +0 -0
  115. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_application.json +24 -0
  116. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_application_summary.json +57 -0
  117. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_application.json +11 -0
  118. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_domain.json +10 -0
  119. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_organization.json +11 -0
  120. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_route.json +13 -0
  121. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_service_instance.json +11 -0
  122. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_space.json +11 -0
  123. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_created_user.json +11 -0
  124. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_empty_search.json +7 -0
  125. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_frameworks.json +20 -0
  126. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization.json +144 -0
  127. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_domains.json +34 -0
  128. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_search.json +37 -0
  129. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_summary.json +19 -0
  130. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_organization_users.json +81 -0
  131. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_runtimes.json +20 -0
  132. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_binding.json +22 -0
  133. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_bindings.json +24 -0
  134. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_instance.json +81 -0
  135. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_instances.json +0 -0
  136. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_service_types.json +124 -0
  137. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_space.json +45 -0
  138. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_space_summary.json +86 -0
  139. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_stats.json +29 -0
  140. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user.json +112 -0
  141. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user_organizations.json +92 -0
  142. data/vendor/cfoundry-0.5.2/spec/fixtures/fake_cc_user_with_managers.json +85 -0
  143. data/vendor/cfoundry-0.5.2/spec/spec_helper.rb +20 -0
  144. data/vendor/cfoundry-0.5.2/spec/support/fake_helper.rb +236 -0
  145. data/vendor/cfoundry-0.5.2/spec/support/randoms.rb +3 -0
  146. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/cc_api_stub_request_examples.rb +79 -0
  147. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/client_login_examples.rb +46 -0
  148. data/vendor/cfoundry-0.5.2/spec/support/shared_examples/model_summary_examples.rb +34 -0
  149. data/vendor/cfoundry-0.5.2/spec/support/v1_fake_helper.rb +144 -0
  150. data/vendor/cfoundry-0.5.2/vendor/errors/README.md +4 -0
  151. data/vendor/cfoundry-0.5.2/vendor/errors/v1.yml +189 -0
  152. data/vendor/cfoundry-0.5.2/vendor/errors/v2.yml +360 -0
  153. data/vendor/tunnel-vmc-plugin-0.2.2/Rakefile +39 -0
  154. data/vendor/tunnel-vmc-plugin-0.2.2/config/clients.yml +17 -0
  155. data/vendor/tunnel-vmc-plugin-0.2.2/helper-app/Gemfile +10 -0
  156. data/vendor/tunnel-vmc-plugin-0.2.2/helper-app/server.rb +43 -0
  157. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/plugin.rb +178 -0
  158. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/tunnel.rb +308 -0
  159. data/vendor/tunnel-vmc-plugin-0.2.2/lib/tunnel-vmc-plugin/version.rb +3 -0
  160. data/vendor/tunnel-vmc-plugin-0.2.2/spec/plugin_spec.rb +29 -0
  161. data/vendor/tunnel-vmc-plugin-0.2.2/spec/spec_helper.rb +15 -0
  162. data/vendor/vmc-0.5.0/LICENSE +1277 -0
  163. data/vendor/vmc-0.5.0/Rakefile +101 -0
  164. data/vendor/vmc-0.5.0/bin/vmc +11 -0
  165. data/vendor/vmc-0.5.0/lib/vmc/cli/app/app.rb +45 -0
  166. data/vendor/vmc-0.5.0/lib/vmc/cli/app/apps.rb +99 -0
  167. data/vendor/vmc-0.5.0/lib/vmc/cli/app/base.rb +82 -0
  168. data/vendor/vmc-0.5.0/lib/vmc/cli/app/crashes.rb +42 -0
  169. data/vendor/vmc-0.5.0/lib/vmc/cli/app/delete.rb +95 -0
  170. data/vendor/vmc-0.5.0/lib/vmc/cli/app/deprecated.rb +11 -0
  171. data/vendor/vmc-0.5.0/lib/vmc/cli/app/env.rb +78 -0
  172. data/vendor/vmc-0.5.0/lib/vmc/cli/app/files.rb +137 -0
  173. data/vendor/vmc-0.5.0/lib/vmc/cli/app/health.rb +26 -0
  174. data/vendor/vmc-0.5.0/lib/vmc/cli/app/instances.rb +53 -0
  175. data/vendor/vmc-0.5.0/lib/vmc/cli/app/logs.rb +76 -0
  176. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/create.rb +153 -0
  177. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/interactions.rb +94 -0
  178. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push/sync.rb +64 -0
  179. data/vendor/vmc-0.5.0/lib/vmc/cli/app/push.rb +105 -0
  180. data/vendor/vmc-0.5.0/lib/vmc/cli/app/rename.rb +35 -0
  181. data/vendor/vmc-0.5.0/lib/vmc/cli/app/restart.rb +20 -0
  182. data/vendor/vmc-0.5.0/lib/vmc/cli/app/scale.rb +71 -0
  183. data/vendor/vmc-0.5.0/lib/vmc/cli/app/start.rb +150 -0
  184. data/vendor/vmc-0.5.0/lib/vmc/cli/app/stats.rb +67 -0
  185. data/vendor/vmc-0.5.0/lib/vmc/cli/app/stop.rb +27 -0
  186. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/base.rb +12 -0
  187. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/domains.rb +40 -0
  188. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/map.rb +55 -0
  189. data/vendor/vmc-0.5.0/lib/vmc/cli/domain/unmap.rb +56 -0
  190. data/vendor/vmc-0.5.0/lib/vmc/cli/help.rb +15 -0
  191. data/vendor/vmc-0.5.0/lib/vmc/cli/interactive.rb +105 -0
  192. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/base.rb +14 -0
  193. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/create.rb +32 -0
  194. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/delete.rb +73 -0
  195. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/org.rb +45 -0
  196. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/orgs.rb +35 -0
  197. data/vendor/vmc-0.5.0/lib/vmc/cli/organization/rename.rb +36 -0
  198. data/vendor/vmc-0.5.0/lib/vmc/cli/route/base.rb +12 -0
  199. data/vendor/vmc-0.5.0/lib/vmc/cli/route/map.rb +80 -0
  200. data/vendor/vmc-0.5.0/lib/vmc/cli/route/routes.rb +26 -0
  201. data/vendor/vmc-0.5.0/lib/vmc/cli/route/unmap.rb +94 -0
  202. data/vendor/vmc-0.5.0/lib/vmc/cli/service/base.rb +8 -0
  203. data/vendor/vmc-0.5.0/lib/vmc/cli/service/bind.rb +44 -0
  204. data/vendor/vmc-0.5.0/lib/vmc/cli/service/create.rb +126 -0
  205. data/vendor/vmc-0.5.0/lib/vmc/cli/service/delete.rb +86 -0
  206. data/vendor/vmc-0.5.0/lib/vmc/cli/service/rename.rb +35 -0
  207. data/vendor/vmc-0.5.0/lib/vmc/cli/service/service.rb +42 -0
  208. data/vendor/vmc-0.5.0/lib/vmc/cli/service/services.rb +114 -0
  209. data/vendor/vmc-0.5.0/lib/vmc/cli/service/unbind.rb +38 -0
  210. data/vendor/vmc-0.5.0/lib/vmc/cli/space/base.rb +21 -0
  211. data/vendor/vmc-0.5.0/lib/vmc/cli/space/create.rb +60 -0
  212. data/vendor/vmc-0.5.0/lib/vmc/cli/space/delete.rb +95 -0
  213. data/vendor/vmc-0.5.0/lib/vmc/cli/space/rename.rb +39 -0
  214. data/vendor/vmc-0.5.0/lib/vmc/cli/space/space.rb +64 -0
  215. data/vendor/vmc-0.5.0/lib/vmc/cli/space/spaces.rb +55 -0
  216. data/vendor/vmc-0.5.0/lib/vmc/cli/space/switch.rb +16 -0
  217. data/vendor/vmc-0.5.0/lib/vmc/cli/start/base.rb +83 -0
  218. data/vendor/vmc-0.5.0/lib/vmc/cli/start/colors.rb +13 -0
  219. data/vendor/vmc-0.5.0/lib/vmc/cli/start/info.rb +126 -0
  220. data/vendor/vmc-0.5.0/lib/vmc/cli/start/login.rb +96 -0
  221. data/vendor/vmc-0.5.0/lib/vmc/cli/start/logout.rb +17 -0
  222. data/vendor/vmc-0.5.0/lib/vmc/cli/start/target.rb +71 -0
  223. data/vendor/vmc-0.5.0/lib/vmc/cli/start/target_interactions.rb +37 -0
  224. data/vendor/vmc-0.5.0/lib/vmc/cli/start/targets.rb +16 -0
  225. data/vendor/vmc-0.5.0/lib/vmc/cli/user/base.rb +29 -0
  226. data/vendor/vmc-0.5.0/lib/vmc/cli/user/create.rb +39 -0
  227. data/vendor/vmc-0.5.0/lib/vmc/cli/user/delete.rb +27 -0
  228. data/vendor/vmc-0.5.0/lib/vmc/cli/user/passwd.rb +50 -0
  229. data/vendor/vmc-0.5.0/lib/vmc/cli/user/register.rb +42 -0
  230. data/vendor/vmc-0.5.0/lib/vmc/cli/user/users.rb +32 -0
  231. data/vendor/vmc-0.5.0/lib/vmc/cli.rb +475 -0
  232. data/vendor/vmc-0.5.0/lib/vmc/constants.rb +13 -0
  233. data/vendor/vmc-0.5.0/lib/vmc/detect.rb +129 -0
  234. data/vendor/vmc-0.5.0/lib/vmc/errors.rb +17 -0
  235. data/vendor/vmc-0.5.0/lib/vmc/plugin.rb +56 -0
  236. data/vendor/vmc-0.5.0/lib/vmc/spacing.rb +89 -0
  237. data/vendor/vmc-0.5.0/lib/vmc/spec_helper.rb +1 -0
  238. data/vendor/vmc-0.5.0/lib/vmc/test_support.rb +6 -0
  239. data/vendor/vmc-0.5.0/lib/vmc/version.rb +3 -0
  240. data/vendor/vmc-0.5.0/lib/vmc.rb +8 -0
  241. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/Gemfile +3 -0
  242. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/config.ru +3 -0
  243. data/vendor/vmc-0.5.0/spec/assets/hello-sinatra/main.rb +6 -0
  244. data/vendor/vmc-0.5.0/spec/assets/specker_runner/specker_runner_input.rb +6 -0
  245. data/vendor/vmc-0.5.0/spec/assets/specker_runner/specker_runner_pause.rb +5 -0
  246. data/vendor/vmc-0.5.0/spec/console_app_specker/console_app_specker_matchers_spec.rb +152 -0
  247. data/vendor/vmc-0.5.0/spec/console_app_specker/specker_runner_spec.rb +157 -0
  248. data/vendor/vmc-0.5.0/spec/features/v1/new_user_flow_spec.rb +109 -0
  249. data/vendor/vmc-0.5.0/spec/features/v2/account_lifecycle_spec.rb +64 -0
  250. data/vendor/vmc-0.5.0/spec/features/v2/push_flow_spec.rb +125 -0
  251. data/vendor/vmc-0.5.0/spec/features/v2/switching_targets_spec.rb +32 -0
  252. data/vendor/vmc-0.5.0/spec/spec_helper.rb +63 -0
  253. data/vendor/vmc-0.5.0/spec/support/command_helper.rb +80 -0
  254. data/vendor/vmc-0.5.0/spec/support/config_helper.rb +15 -0
  255. data/vendor/vmc-0.5.0/spec/support/console_app_specker_matchers.rb +75 -0
  256. data/vendor/vmc-0.5.0/spec/support/fake_home_dir.rb +55 -0
  257. data/vendor/vmc-0.5.0/spec/support/interact_helper.rb +29 -0
  258. data/vendor/vmc-0.5.0/spec/support/shared_examples/errors.rb +40 -0
  259. data/vendor/vmc-0.5.0/spec/support/shared_examples/input.rb +14 -0
  260. data/vendor/vmc-0.5.0/spec/support/specker_runner.rb +79 -0
  261. data/vendor/vmc-0.5.0/spec/support/tracking_expector.rb +71 -0
  262. data/vendor/vmc-0.5.0/spec/vmc/cli/app/base_spec.rb +17 -0
  263. data/vendor/vmc-0.5.0/spec/vmc/cli/app/delete_spec.rb +188 -0
  264. data/vendor/vmc-0.5.0/spec/vmc/cli/app/instances_spec.rb +65 -0
  265. data/vendor/vmc-0.5.0/spec/vmc/cli/app/push/create_spec.rb +591 -0
  266. data/vendor/vmc-0.5.0/spec/vmc/cli/app/push_spec.rb +369 -0
  267. data/vendor/vmc-0.5.0/spec/vmc/cli/app/rename_spec.rb +104 -0
  268. data/vendor/vmc-0.5.0/spec/vmc/cli/app/scale_spec.rb +76 -0
  269. data/vendor/vmc-0.5.0/spec/vmc/cli/app/start_spec.rb +168 -0
  270. data/vendor/vmc-0.5.0/spec/vmc/cli/app/stats_spec.rb +68 -0
  271. data/vendor/vmc-0.5.0/spec/vmc/cli/domain/map_spec.rb +130 -0
  272. data/vendor/vmc-0.5.0/spec/vmc/cli/domain/unmap_spec.rb +69 -0
  273. data/vendor/vmc-0.5.0/spec/vmc/cli/organization/orgs_spec.rb +108 -0
  274. data/vendor/vmc-0.5.0/spec/vmc/cli/organization/rename_spec.rb +113 -0
  275. data/vendor/vmc-0.5.0/spec/vmc/cli/route/map_spec.rb +140 -0
  276. data/vendor/vmc-0.5.0/spec/vmc/cli/route/unmap_spec.rb +221 -0
  277. data/vendor/vmc-0.5.0/spec/vmc/cli/service/bind_spec.rb +25 -0
  278. data/vendor/vmc-0.5.0/spec/vmc/cli/service/delete_spec.rb +22 -0
  279. data/vendor/vmc-0.5.0/spec/vmc/cli/service/rename_spec.rb +105 -0
  280. data/vendor/vmc-0.5.0/spec/vmc/cli/service/service_spec.rb +23 -0
  281. data/vendor/vmc-0.5.0/spec/vmc/cli/service/unbind_spec.rb +25 -0
  282. data/vendor/vmc-0.5.0/spec/vmc/cli/space/create_spec.rb +73 -0
  283. data/vendor/vmc-0.5.0/spec/vmc/cli/space/rename_spec.rb +102 -0
  284. data/vendor/vmc-0.5.0/spec/vmc/cli/space/spaces_spec.rb +104 -0
  285. data/vendor/vmc-0.5.0/spec/vmc/cli/space/switch_space_spec.rb +55 -0
  286. data/vendor/vmc-0.5.0/spec/vmc/cli/start/info_spec.rb +160 -0
  287. data/vendor/vmc-0.5.0/spec/vmc/cli/start/login_spec.rb +142 -0
  288. data/vendor/vmc-0.5.0/spec/vmc/cli/start/logout_spec.rb +50 -0
  289. data/vendor/vmc-0.5.0/spec/vmc/cli/start/target_spec.rb +123 -0
  290. data/vendor/vmc-0.5.0/spec/vmc/cli/user/create_spec.rb +54 -0
  291. data/vendor/vmc-0.5.0/spec/vmc/cli/user/delete_spec.rb +51 -0
  292. data/vendor/vmc-0.5.0/spec/vmc/cli/user/passwd_spec.rb +102 -0
  293. data/vendor/vmc-0.5.0/spec/vmc/cli/user/register_spec.rb +140 -0
  294. data/vendor/vmc-0.5.0/spec/vmc/cli_spec.rb +448 -0
  295. data/vendor/vmc-0.5.0/spec/vmc/detect_spec.rb +54 -0
  296. metadata +446 -43
@@ -0,0 +1,89 @@
1
+ module VMC
2
+ module Spacing
3
+ @@indentation = 0
4
+
5
+ def indented
6
+ @@indentation += 1
7
+ yield
8
+ ensure
9
+ @@indentation -= 1
10
+ end
11
+
12
+ def line(msg = "")
13
+ return puts "" if msg.empty?
14
+
15
+ start_line(msg)
16
+ puts ""
17
+ end
18
+
19
+ def start_line(msg)
20
+ print " " * @@indentation unless quiet?
21
+ print msg
22
+ end
23
+
24
+ def lines(blob)
25
+ blob.each_line do |line|
26
+ start_line(line)
27
+ end
28
+
29
+ line
30
+ end
31
+
32
+ def quiet?
33
+ false
34
+ end
35
+
36
+ def spaced(vals)
37
+ num = 0
38
+ vals.each do |val|
39
+ line unless quiet? || num == 0
40
+ yield val
41
+ num += 1
42
+ end
43
+ end
44
+
45
+ def tabular(*rows)
46
+ spacings = []
47
+ rows.each do |row|
48
+ next unless row
49
+
50
+ row.each.with_index do |col, i|
51
+ next unless col
52
+
53
+ width = text_width(col)
54
+
55
+ if !spacings[i] || width > spacings[i]
56
+ spacings[i] = width
57
+ end
58
+ end
59
+ end
60
+
61
+ columns = spacings.size
62
+ rows.each do |row|
63
+ next unless row
64
+
65
+ row.each.with_index do |col, i|
66
+ next unless col
67
+
68
+ start_line justify(col, spacings[i])
69
+ print " " unless i + 1 == columns
70
+ end
71
+
72
+ line
73
+ end
74
+ end
75
+
76
+ def trim_escapes(str)
77
+ str.gsub(/\e\[\d+m/, "")
78
+ end
79
+
80
+ def text_width(str)
81
+ trim_escapes(str).size
82
+ end
83
+
84
+ def justify(str, width)
85
+ trimmed = trim_escapes(str)
86
+ str.ljust(width + (str.size - trimmed.size))
87
+ end
88
+ end
89
+ end
@@ -0,0 +1 @@
1
+ require File.expand_path("../../../spec/spec_helper", __FILE__)
@@ -0,0 +1,6 @@
1
+ module VMC::TestSupport
2
+ end
3
+
4
+ Dir[File.expand_path('../../../spec/support/**/*.rb', __FILE__)].each do |file|
5
+ require file
6
+ end
@@ -0,0 +1,3 @@
1
+ module VMC
2
+ VERSION = "0.5.0".freeze
3
+ end
@@ -0,0 +1,8 @@
1
+ require "vmc/version"
2
+
3
+ require "vmc/cli"
4
+
5
+ command_files = "../vmc/cli/{app,route,domain,organization,space,service,start,user}/*.rb"
6
+ Dir[File.expand_path(command_files, __FILE__)].each do |file|
7
+ require file unless File.basename(file) == 'base.rb'
8
+ end
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "sinatra"
@@ -0,0 +1,3 @@
1
+ require './main'
2
+
3
+ run Main.new
@@ -0,0 +1,6 @@
1
+ require "rubygems"
2
+ require "sinatra"
3
+
4
+ get "/" do
5
+ "Hello, world!"
6
+ end
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $stdout.sync = true
4
+ print "started"
5
+ typed = gets
6
+ print "received #{typed}"
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ print "started"
4
+ sleep 0.5
5
+ print " finished"
@@ -0,0 +1,152 @@
1
+ require 'spec_helper'
2
+ include ConsoleAppSpeckerMatchers
3
+
4
+ describe ConsoleAppSpeckerMatchers, :ruby19 => true do
5
+ describe "#say" do
6
+ it "returns an ExpectOutputMatcher" do
7
+ say("").should be_a(ExpectOutputMatcher)
8
+ end
9
+
10
+ context "with an explicit timeout" do
11
+ it "returns an ExpectOutputMatcher" do
12
+ matcher = say("", 30)
13
+ matcher.should be_a(ExpectOutputMatcher)
14
+ matcher.timeout.should == 30
15
+ end
16
+ end
17
+ end
18
+
19
+ describe "#have_exited_with" do
20
+ it "returns an ExitCodeMatcher" do
21
+ have_exited_with(1).should be_a(ExitCodeMatcher)
22
+ end
23
+
24
+ it "has synonyms" do
25
+ exit_with(1).should be_a(ExitCodeMatcher)
26
+ end
27
+ end
28
+ end
29
+
30
+ describe ExpectOutputMatcher, :ruby19 => true do
31
+ let(:expected_output) { "expected_output" }
32
+ let(:timeout) { 1 }
33
+
34
+ subject { ExpectOutputMatcher.new(expected_output, timeout) }
35
+
36
+ describe "#matches?" do
37
+ context "with something that isn't a runner" do
38
+ it "raises an exception" do
39
+ expect {
40
+ subject.matches?("c'est ne pas une specker runner")
41
+ }.to raise_exception(InvalidInputError)
42
+ end
43
+ end
44
+
45
+ context "with a valid runner" do
46
+ context "when the expected output is in the process output" do
47
+ it "finds the expected output" do
48
+ run("echo -n expected_output") do |runner|
49
+ subject.matches?(runner).should be_true
50
+ end
51
+ end
52
+ end
53
+
54
+ context "when the expected output is not in the process output" do
55
+ let(:runner) { SpeckerRunner.new('echo -n not_what_we_were_expecting') }
56
+
57
+ it "does not find the expected output" do
58
+ run("echo -n not_what_we_were_expecting") do |runner|
59
+ subject.matches?(runner).should be_false
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ context "failure messages" do
67
+ it "has a correct failure message" do
68
+ run("echo -n actual_output") do |runner|
69
+ subject.matches?(runner)
70
+ subject.failure_message.should == "expected 'expected_output' to be printed, but it wasn't. full output:\nactual_output"
71
+ end
72
+ end
73
+
74
+ it "has a correct negative failure message" do
75
+ run("echo -n actual_output") do |runner|
76
+ subject.matches?(runner)
77
+ subject.negative_failure_message.should == "expected 'expected_output' to not be printed, but it was. full output:\nactual_output"
78
+ end
79
+ end
80
+ end
81
+ end
82
+
83
+ describe ExitCodeMatcher, :ruby19 => true do
84
+ let(:expected_code) { 0 }
85
+
86
+ subject { ExitCodeMatcher.new(expected_code) }
87
+
88
+ describe "#matches?" do
89
+ context "with something that isn't a runner" do
90
+ it "raises an exception" do
91
+ expect {
92
+ subject.matches?("c'est ne pas une specker runner")
93
+ }.to raise_exception(InvalidInputError)
94
+ end
95
+ end
96
+
97
+ context "with a valid runner" do
98
+ context "and the command exited with the expected exit code" do
99
+ it "returns true" do
100
+ run("true") do |runner|
101
+ subject.matches?(runner).should be_true
102
+ end
103
+ end
104
+ end
105
+
106
+ context "and the command exits with a different exit code" do
107
+ it "returns false" do
108
+ run("false") do |runner|
109
+ subject.matches?(runner).should be_false
110
+ end
111
+ end
112
+ end
113
+
114
+ context "and the command runs for a while" do
115
+ it "waits for it to exit" do
116
+ run("sleep 0.5") do |runner|
117
+ subject.matches?(runner).should be_true
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end
123
+
124
+ context "failure messages" do
125
+ context "with a command that's exited" do
126
+ it "has a correct failure message" do
127
+ run("false") do |runner|
128
+ subject.matches?(runner)
129
+ runner.wait_for_exit
130
+ subject.failure_message.should == "expected process to exit with status 0, but it exited with status 1"
131
+ end
132
+ end
133
+
134
+ it "has a correct negative failure message" do
135
+ run("false") do |runner|
136
+ subject.matches?(runner)
137
+ runner.wait_for_exit
138
+ subject.negative_failure_message.should == "expected process to not exit with status 0, but it did"
139
+ end
140
+ end
141
+ end
142
+
143
+ context "with a command that's still running" do
144
+ it "waits for it to exit" do
145
+ run("ruby -e 'sleep 1; exit 1'") do |runner|
146
+ subject.matches?(runner)
147
+ subject.failure_message.should == "expected process to exit with status 0, but it exited with status 1"
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
@@ -0,0 +1,157 @@
1
+ require 'spec_helper'
2
+
3
+ describe SpeckerRunner, :ruby19 => true do
4
+ def asset(file)
5
+ File.expand_path("../../assets/specker_runner/#{file}", __FILE__)
6
+ end
7
+
8
+ let(:timeout) { 1 }
9
+
10
+ describe "running a command" do
11
+ let(:file) do
12
+ file = Tempfile.new('test-specker-runner')
13
+ sleep 1 # wait one second to make sure touching the file does something measurable
14
+ file
15
+ end
16
+
17
+ after { file.unlink }
18
+
19
+ it "runs a command" do
20
+ run("touch -a #{file.path}") do |runner|
21
+ runner.wait_for_exit
22
+ file.stat.atime.should > file.stat.mtime
23
+ end
24
+ end
25
+ end
26
+
27
+ describe "#expect" do
28
+ context "when the expected output shows up" do
29
+ it "returns a truthy value" do
30
+ run("echo -n foo") do |runner|
31
+ expect(runner.expect('foo')).to be_true
32
+ end
33
+ end
34
+ end
35
+
36
+ context "when the expected output never shows up" do
37
+ it "returns nil" do
38
+ run("echo the spanish inquisition") do |runner|
39
+ expect(runner.expect("something else", 0.5)).to be_nil
40
+ end
41
+ end
42
+ end
43
+
44
+ context "when the output eventually shows up" do
45
+ it "returns a truthy value" do
46
+ run("ruby #{asset("specker_runner_pause.rb")}") do |runner|
47
+ expect(runner.expect("finished")).to be_true
48
+ end
49
+ end
50
+ end
51
+
52
+ context "backspace" do
53
+ it "respects the backspace character" do
54
+ run("ruby -e 'puts \"foo a\\bbar\"'") do |runner|
55
+ expect(runner.expect("foo bar")).to be_true
56
+ end
57
+ end
58
+
59
+ it "does not go beyond the beginning of the line" do
60
+ run("ruby -e 'print \"foo abc\nx\\b\\bd\"'") do |runner|
61
+ expect(runner.expect("foo abc\nd")).to be_true
62
+ end
63
+ end
64
+
65
+ it "does not go beyond the beginning of the string" do
66
+ run("ruby -e 'print \"f\\b\\bbar\"'") do |runner|
67
+ expect(runner.expect("bar")).to be_true
68
+ end
69
+ end
70
+
71
+ it "leaves backspaced characters in the buffer until they're overwritten" do
72
+ run("ruby -e 'print \"foo abc\\b\\bd\"'") do |runner|
73
+ expect(runner.expect("foo adc")).to be_true
74
+ end
75
+ end
76
+ end
77
+
78
+ context "ansi escape sequences" do
79
+ it "filters ansi color sequences" do
80
+ run("ruby -e 'puts \"\\e[36mblue\\e[0m thing\"'") do |runner|
81
+ expect(runner.expect("blue thing")).to be_true
82
+ end
83
+ end
84
+ end
85
+
86
+ context "expecting multiple branches" do
87
+ context "and one of them matches" do
88
+ it "can be passed a hash of values with callbacks" do
89
+ run("echo 1 3") do |runner|
90
+ branches = {
91
+ "1" => proc { 1 },
92
+ "2" => proc { 2 },
93
+ "3" => proc { 3 }
94
+ }
95
+
96
+ expect(runner.expect(branches)).to eq 1
97
+ expect(runner.expect(branches)).to eq 3
98
+ end
99
+ end
100
+ end
101
+
102
+ context "and none of them match" do
103
+ it "returns nil when none of the branches match" do
104
+ run("echo not_a_number") do |runner|
105
+ expect(runner.expect({"1" => proc { 1 }}, timeout)).to be_nil
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+
112
+ describe "#output" do
113
+ it "makes the entire command output (so far) available" do
114
+ run("echo 0 1 2 3") do |runner|
115
+ runner.expect("1")
116
+ runner.expect("3")
117
+ expect(runner.output).to eq "0 1 2 3"
118
+ end
119
+
120
+ end
121
+ end
122
+
123
+ describe "#send_keys" do
124
+ it "sends input and expects more output afterward" do
125
+ run("ruby #{asset("specker_runner_input.rb")}") do |runner|
126
+ expect(runner.expect("started")).to be_true
127
+ runner.send_keys("foo")
128
+ expect(runner.expect("foo")).to be_true
129
+ end
130
+ end
131
+ end
132
+
133
+ context "#exit_code" do
134
+ it "returns the exit code" do
135
+ run("ruby -e 'exit 42'") do |runner|
136
+ runner.wait_for_exit
137
+ expect(runner.exit_code).to eq(42)
138
+ end
139
+ end
140
+
141
+ context "when the command is still running" do
142
+ it "waits for the command to exit" do
143
+ run("sleep 0.5") do |runner|
144
+ expect(runner.exit_code).to eq(0)
145
+ end
146
+ end
147
+ end
148
+ end
149
+
150
+ context "#exited?" do
151
+ it "returns false if the command is still running" do
152
+ run("sleep 10") do |runner|
153
+ expect(runner.exited?).to eq false
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+ require 'webmock/rspec'
3
+ require 'ffaker'
4
+
5
+ if ENV['VMC_TEST_USER'] && ENV['VMC_TEST_PASSWORD'] && ENV['VMC_TEST_TARGET']
6
+ describe 'A new user tries to use VMC against v1 production', :ruby19 => true do
7
+ include VMC::Interactive
8
+
9
+ let(:target) { ENV['VMC_TEST_TARGET'] }
10
+ let(:username) { ENV['VMC_TEST_USER'] }
11
+ let(:password) { ENV['VMC_TEST_PASSWORD'] }
12
+
13
+ let(:app) do
14
+ fuzz = defined?(TRAVIS_BUILD_ID) ? TRAVIS_BUILD_ID : Time.new.to_f.to_s.gsub(".", "_")
15
+ "hello-sinatra-#{fuzz}"
16
+ end
17
+
18
+ before do
19
+ FileUtils.rm_rf File.expand_path(VMC::CONFIG_DIR)
20
+ WebMock.allow_net_connect!
21
+ Interact::Progress::Dots.start!
22
+ end
23
+
24
+ after do
25
+ vmc %W(delete #{app} -f --no-script)
26
+ Interact::Progress::Dots.stop!
27
+ end
28
+
29
+ it 'pushes a simple sinatra app using defaults as much as possible' do
30
+ run("#{vmc_bin} target http://#{target}") do |runner|
31
+ expect(runner).to say %r{Setting target to http://#{target}... OK}
32
+ end
33
+
34
+ run("#{vmc_bin} login") do |runner|
35
+ expect(runner).to say %r{target: https?://#{target}}
36
+
37
+ expect(runner).to say "Email>"
38
+ runner.send_keys username
39
+
40
+ expect(runner).to say "Password>"
41
+ runner.send_keys password
42
+
43
+ expect(runner).to say "Authenticating... OK"
44
+ end
45
+
46
+ run("#{vmc_bin} app #{app}") do |runner|
47
+ expect(runner).to say "Unknown app '#{app}'."
48
+ end
49
+
50
+ Dir.chdir("#{SPEC_ROOT}/assets/hello-sinatra") do
51
+ run("#{vmc_bin} push") do |runner|
52
+ expect(runner).to say "Name>"
53
+ runner.send_keys app
54
+
55
+ expect(runner).to say "Instances> 1"
56
+ runner.send_keys ""
57
+
58
+ expect(runner).to say "1:"
59
+ expect(runner).to say "2: other"
60
+ expect(runner).to say "Framework> "
61
+ runner.send_keys "2"
62
+
63
+ expect(runner).to say ": sinatra"
64
+ expect(runner).to say "Framework> "
65
+ runner.send_keys "sinatra"
66
+
67
+ expect(runner).to say ": ruby"
68
+ expect(runner).to say "Runtime>"
69
+ runner.send_keys "ruby19"
70
+
71
+ expect(runner).to say "1:"
72
+ expect(runner).to say "Memory Limit>"
73
+ runner.send_keys "64M"
74
+
75
+ expect(runner).to say "Creating #{app}... OK"
76
+
77
+ expect(runner).to say "1: #{app}."
78
+ expect(runner).to say "2: none"
79
+ expect(runner).to say "Domain>"
80
+ runner.send_keys ""
81
+
82
+ expect(runner).to say "Updating #{app}... OK"
83
+
84
+ expect(runner).to say "Create services for application?> n"
85
+ runner.send_keys ""
86
+
87
+ expect(runner).to say "Save configuration?> n"
88
+ runner.send_keys ""
89
+
90
+ expect(runner).to say "Uploading #{app}... OK"
91
+ expect(runner).to say "Starting #{app}... OK"
92
+
93
+ expect(runner).to say "Checking #{app}..."
94
+ expect(runner).to say "1/1 instances"
95
+ expect(runner).to say "OK", 30
96
+ end
97
+ end
98
+
99
+ run("#{vmc_bin} delete #{app}") do |runner|
100
+ expect(runner).to say "Really delete #{app}?>"
101
+ runner.send_keys "y"
102
+
103
+ expect(runner).to say "Deleting #{app}... OK"
104
+ end
105
+ end
106
+ end
107
+ else
108
+ $stderr.puts 'Skipping v1 integration specs; please provide $VMC_TEST_TARGET, $VMC_TEST_USER, and $VMC_TEST_PASSWORD'
109
+ end
@@ -0,0 +1,64 @@
1
+ require "spec_helper"
2
+ require "webmock/rspec"
3
+
4
+ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TARGET']
5
+ describe 'A new user tries to use VMC against v2 production', :ruby19 => true do
6
+ include ConsoleAppSpeckerMatchers
7
+
8
+ let(:target) { ENV['VMC_V2_TEST_TARGET'] }
9
+ let(:username) { ENV['VMC_V2_TEST_USER'] }
10
+ let(:password) { ENV['VMC_V2_TEST_PASSWORD'] }
11
+
12
+ before do
13
+ Interact::Progress::Dots.start!
14
+ end
15
+
16
+ after do
17
+ Interact::Progress::Dots.stop!
18
+ end
19
+
20
+ it "registers a new account and deletes it" do
21
+ pending "until we get some v2 admin credentials somewhere to actually run this with"
22
+
23
+ email = Faker::Internet.email
24
+ run("#{vmc_bin} target #{target}") do |runner|
25
+ runner.wait_for_exit
26
+ end
27
+
28
+ run("#{vmc_bin} login #{username} --password #{password}") do |runner|
29
+ expect(runner).to say "Organization>"
30
+ runner.send_keys "1"
31
+ expect(runner).to say "Space>"
32
+ runner.send_keys "1"
33
+ end
34
+
35
+ puts "registering #{email}"
36
+ run("#{vmc_bin} register #{email} --password p") do |runner|
37
+ expect(runner).to say "Confirm Password>"
38
+ runner.send_keys 'p'
39
+ expect(runner).to say "Your password strength is: good"
40
+ expect(runner).to say "Creating user... OK"
41
+ expect(runner).to say "Authenticating... OK"
42
+ end
43
+
44
+ run("#{vmc_bin} logout") do |runner|
45
+ runner.wait_for_exit
46
+ end
47
+
48
+ run("#{vmc_bin} login #{username} --password #{password}") do |runner|
49
+ expect(runner).to say "Organization>"
50
+ runner.send_keys "1"
51
+ expect(runner).to say "Space>"
52
+ runner.send_keys "1"
53
+ end
54
+
55
+ run("#{vmc_bin} delete-user #{email}") do |runner|
56
+ expect(runner).to say "Really delete user #{email}?>"
57
+ runner.send_keys "y"
58
+ expect(runner).to say "Deleting #{email}... OK"
59
+ end
60
+ end
61
+ end
62
+ else
63
+ $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET, $VMC_V2_TEST_USER, and $VMC_V2_TEST_PASSWORD'
64
+ end