bpm 0.1.0
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.
- data/.gitignore +4 -0
- data/.gitmodules +0 -0
- data/Gemfile +16 -0
- data/README.md +55 -0
- data/TODO.md +3 -0
- data/bin/bpm +8 -0
- data/bpm.gemspec +41 -0
- data/lib/bpm.rb +18 -0
- data/lib/bpm/cli.rb +6 -0
- data/lib/bpm/cli/base.rb +358 -0
- data/lib/bpm/cli/owner.rb +46 -0
- data/lib/bpm/credentials.rb +36 -0
- data/lib/bpm/default.json +9 -0
- data/lib/bpm/generator.rb +69 -0
- data/lib/bpm/init_generator.rb +43 -0
- data/lib/bpm/libgems_ext.rb +11 -0
- data/lib/bpm/libgems_ext/config_file.rb +33 -0
- data/lib/bpm/libgems_ext/dependency_installer.rb +150 -0
- data/lib/bpm/libgems_ext/installer.rb +39 -0
- data/lib/bpm/libgems_ext/libgems.rb +39 -0
- data/lib/bpm/libgems_ext/spec_fetcher.rb +11 -0
- data/lib/bpm/local.rb +76 -0
- data/lib/bpm/package.rb +277 -0
- data/lib/bpm/pipeline.rb +100 -0
- data/lib/bpm/pipeline/directive_processor.rb +47 -0
- data/lib/bpm/pipeline/generated_asset.rb +68 -0
- data/lib/bpm/pipeline/transport_processor.rb +32 -0
- data/lib/bpm/project.rb +427 -0
- data/lib/bpm/project_generator.rb +34 -0
- data/lib/bpm/remote.rb +104 -0
- data/lib/bpm/repository.rb +18 -0
- data/lib/bpm/server.rb +44 -0
- data/lib/bpm/version.rb +3 -0
- data/spec/cli/add_spec.rb +159 -0
- data/spec/cli/build_spec.rb +87 -0
- data/spec/cli/fetch_spec.rb +135 -0
- data/spec/cli/fetched_spec.rb +52 -0
- data/spec/cli/init_spec.rb +50 -0
- data/spec/cli/list_spec.rb +74 -0
- data/spec/cli/login_spec.rb +110 -0
- data/spec/cli/new_spec.rb +92 -0
- data/spec/cli/owner_spec.rb +114 -0
- data/spec/cli/push_spec.rb +73 -0
- data/spec/cli/remove_spec.rb +84 -0
- data/spec/cli/unpack_spec.rb +72 -0
- data/spec/cli/unyank_spec.rb +73 -0
- data/spec/cli/yank_spec.rb +73 -0
- data/spec/credentials_spec.rb +23 -0
- data/spec/fixtures/badrake-0.8.7.spd +0 -0
- data/spec/fixtures/builder-3.0.0.spd +0 -0
- data/spec/fixtures/bundler-1.1.pre.spd +0 -0
- data/spec/fixtures/coffee-1.0.1.pre.spd +0 -0
- data/spec/fixtures/core-test-0.4.9.spd +0 -0
- data/spec/fixtures/core-test/bin/cot +3 -0
- data/spec/fixtures/core-test/lib/main.js +1 -0
- data/spec/fixtures/core-test/package.json +46 -0
- data/spec/fixtures/core-test/resources/runner.css +1 -0
- data/spec/fixtures/core-test/tests/test.js +1 -0
- data/spec/fixtures/custom_generator-1.0.spd +0 -0
- data/spec/fixtures/custom_generator/lib/main.js +1 -0
- data/spec/fixtures/custom_generator/package.json +12 -0
- data/spec/fixtures/custom_generator/templates/init/project.json +19 -0
- data/spec/fixtures/custom_generator/templates/project/app.js +1 -0
- data/spec/fixtures/custom_generator/templates/project/lib/main.js +0 -0
- data/spec/fixtures/custom_generator/templates/project_generator.rb +20 -0
- data/spec/fixtures/hello_world/LICENSE +19 -0
- data/spec/fixtures/hello_world/README.md +21 -0
- data/spec/fixtures/hello_world/assets/bpm_packages.js +13 -0
- data/spec/fixtures/hello_world/assets/bpm_styles.css +14 -0
- data/spec/fixtures/hello_world/assets/papa-smurf.jpg +0 -0
- data/spec/fixtures/hello_world/hello_world.json +20 -0
- data/spec/fixtures/hello_world/lib/main.js +9 -0
- data/spec/fixtures/hello_world/packages/custom_package/assets/dummy.txt +1 -0
- data/spec/fixtures/hello_world/packages/custom_package/css/sample_styles.css +3 -0
- data/spec/fixtures/hello_world/packages/custom_package/custom_dir/basic-module.js +1 -0
- data/spec/fixtures/hello_world/packages/custom_package/lib/main.js +1 -0
- data/spec/fixtures/hello_world/packages/custom_package/package.json +22 -0
- data/spec/fixtures/hello_world/tests/main-test.js +8 -0
- data/spec/fixtures/highline-1.6.1.spd +0 -0
- data/spec/fixtures/ivory-0.0.1.spd +0 -0
- data/spec/fixtures/jquery-1.4.3.spd +0 -0
- data/spec/fixtures/optparse-1.0.1.spd +0 -0
- data/spec/fixtures/rake-0.8.6.spd +0 -0
- data/spec/fixtures/rake-0.8.7.spd +0 -0
- data/spec/fixtures/simple_hello/assets/bpm_packages.js +1 -0
- data/spec/fixtures/simple_hello/lib/main.js +1 -0
- data/spec/fixtures/spade-0.5.0.spd +0 -0
- data/spec/fixtures/src/README.txt +1 -0
- data/spec/fixtures/src/bundler-1.1.pre/.gitignore +22 -0
- data/spec/fixtures/src/bundler-1.1.pre/CHANGELOG.md +646 -0
- data/spec/fixtures/src/bundler-1.1.pre/ISSUES.md +47 -0
- data/spec/fixtures/src/bundler-1.1.pre/LICENSE +21 -0
- data/spec/fixtures/src/bundler-1.1.pre/README.md +29 -0
- data/spec/fixtures/src/bundler-1.1.pre/UPGRADING.md +103 -0
- data/spec/fixtures/src/bundler-1.1.pre/bin/bundle +20 -0
- data/spec/fixtures/src/bundler-1.1.pre/lib/bundler.js +23 -0
- data/spec/fixtures/src/bundler-1.1.pre/lib/bundler/definition.js +14 -0
- data/spec/fixtures/src/bundler-1.1.pre/lib/bundler/dependency.js +15 -0
- data/spec/fixtures/src/bundler-1.1.pre/lib/bundler/dsl.js +9 -0
- data/spec/fixtures/src/bundler-1.1.pre/lib/bundler/ui.js +6 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle-config.ronn +90 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle-exec.ronn +111 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle-install.ronn +314 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle-package.ronn +59 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle-update.ronn +176 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/bundle.ronn +80 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/gemfile.5.ronn +279 -0
- data/spec/fixtures/src/bundler-1.1.pre/man/index.txt +6 -0
- data/spec/fixtures/src/bundler-1.1.pre/package.json +19 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/bin/cake +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/bin/coffee +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/lib/coffee.js +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/lib/coffee/base.js +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/lib/coffee/mocha/chai.js +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/package.json +19 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/qunit/coffee/test.js +0 -0
- data/spec/fixtures/src/coffee-1.0.1.pre/qunit/test.js +0 -0
- data/spec/fixtures/src/jquery/lib/main.js +7179 -0
- data/spec/fixtures/src/jquery/package.json +15 -0
- data/spec/fixtures/src/rake-0.8.6/CHANGES +436 -0
- data/spec/fixtures/src/rake-0.8.6/MIT-LICENSE +21 -0
- data/spec/fixtures/src/rake-0.8.6/README +196 -0
- data/spec/fixtures/src/rake-0.8.6/Rakefile +430 -0
- data/spec/fixtures/src/rake-0.8.6/TODO +20 -0
- data/spec/fixtures/src/rake-0.8.6/bin/rake +31 -0
- data/spec/fixtures/src/rake-0.8.6/doc/command_line_usage.rdoc +102 -0
- data/spec/fixtures/src/rake-0.8.6/doc/example/Rakefile1 +38 -0
- data/spec/fixtures/src/rake-0.8.6/doc/example/Rakefile2 +35 -0
- data/spec/fixtures/src/rake-0.8.6/doc/example/a.c +6 -0
- data/spec/fixtures/src/rake-0.8.6/doc/example/b.c +6 -0
- data/spec/fixtures/src/rake-0.8.6/doc/example/main.c +11 -0
- data/spec/fixtures/src/rake-0.8.6/doc/glossary.rdoc +51 -0
- data/spec/fixtures/src/rake-0.8.6/doc/jamis.rb +591 -0
- data/spec/fixtures/src/rake-0.8.6/doc/proto_rake.rdoc +127 -0
- data/spec/fixtures/src/rake-0.8.6/doc/rake.1.gz +0 -0
- data/spec/fixtures/src/rake-0.8.6/doc/rakefile.rdoc +534 -0
- data/spec/fixtures/src/rake-0.8.6/doc/rational.rdoc +151 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/spec/fixtures/src/rake-0.8.6/doc/release_notes/rake-0.8.6.rdoc +55 -0
- data/spec/fixtures/src/rake-0.8.6/install.rb +88 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake.rb +2502 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/alt_system.rb +108 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/classic_namespace.rb +8 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/clean.rb +33 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/compositepublisher.rb +24 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/ftptools.rb +153 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/publisher.rb +75 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/sshpublisher.rb +47 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/contrib/sys.rb +209 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/gempackagetask.rb +97 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/loaders/makefile.rb +42 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/packagetask.rb +184 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/rake_test_loader.rb +5 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/rdoctask.rb +209 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/ruby182_test_unit_fix.rb +23 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/runtest.rb +23 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/tasklib.rb +23 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/testtask.rb +161 -0
- data/spec/fixtures/src/rake-0.8.6/lib/rake/win32.rb +55 -0
- data/spec/fixtures/src/rake-0.8.6/package.json +18 -0
- data/spec/fixtures/src/rake-0.8.6/test/capture_stdout.rb +26 -0
- data/spec/fixtures/src/rake-0.8.7/CHANGES +440 -0
- data/spec/fixtures/src/rake-0.8.7/MIT-LICENSE +21 -0
- data/spec/fixtures/src/rake-0.8.7/README +196 -0
- data/spec/fixtures/src/rake-0.8.7/Rakefile +430 -0
- data/spec/fixtures/src/rake-0.8.7/TODO +20 -0
- data/spec/fixtures/src/rake-0.8.7/bin/rake +31 -0
- data/spec/fixtures/src/rake-0.8.7/doc/command_line_usage.rdoc +102 -0
- data/spec/fixtures/src/rake-0.8.7/doc/example/Rakefile1 +38 -0
- data/spec/fixtures/src/rake-0.8.7/doc/example/Rakefile2 +35 -0
- data/spec/fixtures/src/rake-0.8.7/doc/example/a.c +6 -0
- data/spec/fixtures/src/rake-0.8.7/doc/example/b.c +6 -0
- data/spec/fixtures/src/rake-0.8.7/doc/example/main.c +11 -0
- data/spec/fixtures/src/rake-0.8.7/doc/glossary.rdoc +51 -0
- data/spec/fixtures/src/rake-0.8.7/doc/jamis.rb +591 -0
- data/spec/fixtures/src/rake-0.8.7/doc/proto_rake.rdoc +127 -0
- data/spec/fixtures/src/rake-0.8.7/doc/rake.1.gz +0 -0
- data/spec/fixtures/src/rake-0.8.7/doc/rakefile.rdoc +534 -0
- data/spec/fixtures/src/rake-0.8.7/doc/rational.rdoc +151 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.6.rdoc +55 -0
- data/spec/fixtures/src/rake-0.8.7/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/spec/fixtures/src/rake-0.8.7/install.rb +88 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake.rb +2506 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/alt_system.rb +108 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/classic_namespace.rb +8 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/clean.rb +33 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/compositepublisher.rb +24 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/ftptools.rb +153 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/publisher.rb +75 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/sshpublisher.rb +47 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/contrib/sys.rb +209 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/gempackagetask.rb +97 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/loaders/makefile.rb +42 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/packagetask.rb +184 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/rake_test_loader.rb +5 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/rdoctask.rb +209 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/ruby182_test_unit_fix.rb +23 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/runtest.rb +23 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/tasklib.rb +23 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/testtask.rb +161 -0
- data/spec/fixtures/src/rake-0.8.7/lib/rake/win32.rb +55 -0
- data/spec/fixtures/src/rake-0.8.7/package.json +18 -0
- data/spec/fixtures/src/rake-0.8.7/test/capture_stdout.rb +26 -0
- data/spec/fixtures/src/spade/lib/main.js +1 -0
- data/spec/fixtures/src/spade/package.json +15 -0
- data/spec/fixtures/transporter/lib/main.js +3 -0
- data/spec/fixtures/transporter/packages/transport/lib/wrapper.js +5 -0
- data/spec/fixtures/transporter/packages/transport/package.json +21 -0
- data/spec/fixtures/transporter/transporter.json +18 -0
- data/spec/gauntlet_spec.rb +33 -0
- data/spec/package_spec.rb +319 -0
- data/spec/pipeline_spec.rb +213 -0
- data/spec/project_spec.rb +130 -0
- data/spec/spec_helper.rb +42 -0
- data/spec/support/cli.rb +93 -0
- data/spec/support/env.rb +18 -0
- data/spec/support/fake.rb +53 -0
- data/spec/support/fake_gem_server.rb +72 -0
- data/spec/support/fake_gemcutter.rb +50 -0
- data/spec/support/matchers.rb +32 -0
- data/spec/support/path.rb +63 -0
- data/spec/support/project.rb +43 -0
- data/templates/init/assets/bpm_packages.js +7 -0
- data/templates/init/assets/bpm_styles.css +7 -0
- data/templates/init/project.json +16 -0
- data/templates/project/LICENSE +19 -0
- data/templates/project/README.md +21 -0
- data/templates/project/app.js +1 -0
- data/templates/project/index.html +13 -0
- metadata +627 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bpm owner" do
|
|
4
|
+
let(:api_key) { "deadbeef" }
|
|
5
|
+
let(:creds) { bpm_dir("credentials") }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
goto_home
|
|
9
|
+
set_host
|
|
10
|
+
start_fake(FakeGemcutter.new(api_key))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "with a good api key" do
|
|
14
|
+
before do
|
|
15
|
+
write_api_key(api_key)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "registers new owners if package is owned" do
|
|
19
|
+
bpm "owner", "add", "rake", "geddy@example.com"
|
|
20
|
+
|
|
21
|
+
stdout.read.should include("Owner added successfully.")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "removes owners if package is owned" do
|
|
25
|
+
bpm "owner", "remove", "rake", "geddy@example.com"
|
|
26
|
+
|
|
27
|
+
stdout.read.should include("Owner removed successfully.")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "lists owners for a gem" do
|
|
31
|
+
bpm "owner", "list", "rake"
|
|
32
|
+
|
|
33
|
+
stdout.read.should == <<EOF
|
|
34
|
+
Owners for package: rake
|
|
35
|
+
- geddy@example.com
|
|
36
|
+
- lerxst@example.com
|
|
37
|
+
EOF
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context "with wrong api key" do
|
|
42
|
+
before do
|
|
43
|
+
write_api_key("beefbeef")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "shows rejection message for add if wrong api key is supplied" do
|
|
47
|
+
bpm "owner", "add", "rake", "geddy@example.com"
|
|
48
|
+
|
|
49
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "shows rejection message for remove if wrong api key is supplied" do
|
|
53
|
+
bpm "owner", "remove", "rake", "geddy@example.com"
|
|
54
|
+
|
|
55
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "shows rejection message for list if wrong api key is supplied" do
|
|
59
|
+
bpm "owner", "list", "rake"
|
|
60
|
+
|
|
61
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
describe "bpm owner with wrong arguments" do
|
|
67
|
+
before do
|
|
68
|
+
cd(home)
|
|
69
|
+
env["HOME"] = home.to_s
|
|
70
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
it "asks for login first if api key does not exist" do
|
|
74
|
+
bpm "owner", "add", "rake", "geddy@example.com", :track_stderr => true
|
|
75
|
+
|
|
76
|
+
stderr.read.should include("Please login first with `bpm login`")
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it "asks for login first if api key does not exist" do
|
|
80
|
+
bpm "owner", "remove", "rake", "geddy@example.com", :track_stderr => true
|
|
81
|
+
|
|
82
|
+
stderr.read.should include("Please login first with `bpm login`")
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "asks for login first if api key does not exist" do
|
|
86
|
+
bpm "owner", "list", "rake", :track_stderr => true
|
|
87
|
+
|
|
88
|
+
stderr.read.should include("Please login first with `bpm login`")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it "requires a package name for add" do
|
|
92
|
+
bpm "owner", "add", :track_stderr => true
|
|
93
|
+
|
|
94
|
+
stderr.read.should include("called incorrectly")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it "requires a package name for remove" do
|
|
98
|
+
bpm "owner", "remove", :track_stderr => true
|
|
99
|
+
|
|
100
|
+
stderr.read.should include("called incorrectly")
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it "requires a package name for list" do
|
|
104
|
+
bpm "owner", "list", :track_stderr => true
|
|
105
|
+
|
|
106
|
+
stderr.read.should include("called incorrectly")
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
it "requires a package name for list with default command" do
|
|
110
|
+
bpm "owner", :track_stderr => true
|
|
111
|
+
|
|
112
|
+
stderr.read.should include("called incorrectly")
|
|
113
|
+
end
|
|
114
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bpm push" do
|
|
4
|
+
let(:api_key) { "deadbeef" }
|
|
5
|
+
let(:creds) { bpm_dir("credentials") }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
goto_home
|
|
9
|
+
set_host
|
|
10
|
+
start_fake(FakeGemcutter.new(api_key))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "with a good api key" do
|
|
14
|
+
before do
|
|
15
|
+
write_api_key(api_key)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "registers a gem when sent with the right api key" do
|
|
19
|
+
bpm "push", "../../spec/fixtures/rake-0.8.7.spd"
|
|
20
|
+
|
|
21
|
+
stdout.read.should include("Successfully registered rake (0.8.7)")
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "shows rejection message if wrong api key is supplied" do
|
|
26
|
+
write_api_key("beefbeef")
|
|
27
|
+
|
|
28
|
+
bpm "push", "../../spec/fixtures/rake-0.8.7.spd"
|
|
29
|
+
|
|
30
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
describe "bpm push without api key" do
|
|
35
|
+
before do
|
|
36
|
+
cd(home)
|
|
37
|
+
env["HOME"] = home.to_s
|
|
38
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
39
|
+
write_api_key("beefbeef")
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "ignores files that don't exist" do
|
|
43
|
+
bpm "push", "rake-1.0.0.spd"
|
|
44
|
+
|
|
45
|
+
stdout.read.should include("No such file")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it "must push a valid gem" do
|
|
49
|
+
bpm "push", "../../spec/fixtures/badrake-0.8.7.spd"
|
|
50
|
+
|
|
51
|
+
stdout.read.should include("There was a problem opening your package.")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "does not allow pushing of random files" do
|
|
55
|
+
bpm "push", "../../Rakefile"
|
|
56
|
+
|
|
57
|
+
stdout.read.should include("There was a problem opening your package.")
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe "bpm push without api key" do
|
|
62
|
+
before do
|
|
63
|
+
cd(home)
|
|
64
|
+
env["HOME"] = home.to_s
|
|
65
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "asks for login first if api key does not exist" do
|
|
69
|
+
bpm "push", "../../spec/fixtures/rake-0.8.7.spd"
|
|
70
|
+
|
|
71
|
+
stdout.read.should include("Please login first with `bpm login`")
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'json'
|
|
3
|
+
|
|
4
|
+
describe 'bpm remove' do
|
|
5
|
+
|
|
6
|
+
before do
|
|
7
|
+
goto_home
|
|
8
|
+
set_host
|
|
9
|
+
start_fake(FakeGemServer.new)
|
|
10
|
+
FileUtils.cp_r(fixtures('hello_world'), '.')
|
|
11
|
+
cd home('hello_world')
|
|
12
|
+
bpm 'compile' # make sure existing packages are installed
|
|
13
|
+
wait
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should remove direct dependency from project" do
|
|
17
|
+
bpm 'remove', 'spade'
|
|
18
|
+
wait
|
|
19
|
+
|
|
20
|
+
output = stdout.read
|
|
21
|
+
output.should include("Removed package 'spade'")
|
|
22
|
+
|
|
23
|
+
no_dependency 'spade'
|
|
24
|
+
has_dependency 'core-test', '0.4.9', '0.4.9' # did not remove other dep
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should remove soft dependencies" do
|
|
28
|
+
bpm 'remove', 'core-test'
|
|
29
|
+
wait
|
|
30
|
+
|
|
31
|
+
output = stdout.read
|
|
32
|
+
%w(core-test:0.4.9 ivory:0.0.1 optparse:1.0.1).each do |line|
|
|
33
|
+
pkg_name, pkg_vers = line.split ':'
|
|
34
|
+
output.should include("Removed package '#{pkg_name}'")
|
|
35
|
+
no_dependency pkg_name
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "should remove soft dependencies only when they are no longer needed" do
|
|
40
|
+
bpm 'add', 'ivory', '-v', '0.0.1', '--verbose' # make a hard dep
|
|
41
|
+
wait
|
|
42
|
+
|
|
43
|
+
bpm 'remove', 'core-test', '--verbose'
|
|
44
|
+
wait
|
|
45
|
+
|
|
46
|
+
output = stdout.read
|
|
47
|
+
%w(core-test:0.4.9 optparse:1.0.1).each do |line|
|
|
48
|
+
pkg_name, pkg_vers = line.split ':'
|
|
49
|
+
output.should include("Removed package '#{pkg_name}'")
|
|
50
|
+
no_dependency pkg_name
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
has_dependency 'ivory', '0.0.1', '0.0.1'
|
|
54
|
+
|
|
55
|
+
bpm 'remove', 'ivory'
|
|
56
|
+
wait
|
|
57
|
+
|
|
58
|
+
no_dependency 'ivory'
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "should do nothing when passed a non-existant dependency" do
|
|
63
|
+
bpm 'remove', 'fake', :track_stderr => true
|
|
64
|
+
wait
|
|
65
|
+
|
|
66
|
+
output = stderr.read
|
|
67
|
+
output.should include("'fake' is not a dependency")
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "should not uninstall local packages" do
|
|
71
|
+
bpm 'add', 'custom_package'
|
|
72
|
+
wait
|
|
73
|
+
has_dependency 'custom_package', '2.0.0'
|
|
74
|
+
|
|
75
|
+
bpm 'remove', 'custom_package'
|
|
76
|
+
output = stdout.read
|
|
77
|
+
|
|
78
|
+
no_dependency 'custom_package'
|
|
79
|
+
File.exists?(home('hello_world', 'packages', 'custom_package', 'package.json')).should be_true
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
it "should verify working with config-less projects"
|
|
83
|
+
|
|
84
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bpm unpack" do
|
|
4
|
+
before do
|
|
5
|
+
goto_home
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "builds a gem from a given package.json" do
|
|
9
|
+
FileUtils.cp fixtures("coffee-1.0.1.pre.spd"), "."
|
|
10
|
+
bpm "unpack", "coffee-1.0.1.pre.spd"
|
|
11
|
+
|
|
12
|
+
exit_status.should be_success
|
|
13
|
+
output = stdout.read
|
|
14
|
+
output.should include("Unpacked package into: #{Dir.pwd}/coffee-1.0.1.pre")
|
|
15
|
+
|
|
16
|
+
home("coffee-1.0.1.pre/bin/coffee").should exist
|
|
17
|
+
home("coffee-1.0.1.pre/lib/coffee.js").should exist
|
|
18
|
+
home("coffee-1.0.1.pre/lib/coffee/base.js").should exist
|
|
19
|
+
home("coffee-1.0.1.pre/lib/coffee/mocha/chai.js").should exist
|
|
20
|
+
home("coffee-1.0.1.pre/qunit/coffee/test.js").should exist
|
|
21
|
+
home("coffee-1.0.1.pre/qunit/test.js").should exist
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "can unpack to a different directory" do
|
|
25
|
+
FileUtils.cp fixtures("coffee-1.0.1.pre.spd"), "."
|
|
26
|
+
bpm "unpack", "coffee-1.0.1.pre.spd", "--target", "star/bucks"
|
|
27
|
+
|
|
28
|
+
exit_status.should be_success
|
|
29
|
+
output = stdout.read
|
|
30
|
+
output.should include("Unpacked package into: #{Dir.pwd}/star/bucks/coffee-1.0.1.pre")
|
|
31
|
+
|
|
32
|
+
home("star/bucks/coffee-1.0.1.pre/bin/coffee").should exist
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "can unpack more than one package" do
|
|
36
|
+
FileUtils.cp fixtures("coffee-1.0.1.pre.spd"), "."
|
|
37
|
+
FileUtils.cp fixtures("jquery-1.4.3.spd"), "."
|
|
38
|
+
bpm "unpack", "coffee-1.0.1.pre.spd", "jquery-1.4.3.spd"
|
|
39
|
+
|
|
40
|
+
exit_status.should be_success
|
|
41
|
+
output = stdout.read
|
|
42
|
+
output.should include("Unpacked package into: #{Dir.pwd}/coffee-1.0.1.pre")
|
|
43
|
+
output.should include("Unpacked package into: #{Dir.pwd}/jquery-1.4.3")
|
|
44
|
+
|
|
45
|
+
home("coffee-1.0.1.pre", "bin", "coffee").should exist
|
|
46
|
+
home("jquery-1.4.3", "lib", "main.js").should exist
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it "shows a friendly error message if bpm can't write to the given directory" do
|
|
50
|
+
FileUtils.mkdir_p(home("bad"))
|
|
51
|
+
cd(home("bad"))
|
|
52
|
+
FileUtils.cp fixtures("jquery-1.4.3.spd"), "."
|
|
53
|
+
FileUtils.chmod 0555, "."
|
|
54
|
+
bpm "unpack", "jquery-1.4.3.spd", :track_stderr => true
|
|
55
|
+
|
|
56
|
+
exit_status.should_not be_success
|
|
57
|
+
output = stderr.read
|
|
58
|
+
output.should include("There was a problem unpacking jquery-1.4.3.spd:")
|
|
59
|
+
output.should include("Permission denied")
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "shows a friendly error message if bpm can't read the package" do
|
|
63
|
+
FileUtils.cp fixtures("jquery-1.4.3.spd"), "."
|
|
64
|
+
FileUtils.chmod 0000, "jquery-1.4.3.spd"
|
|
65
|
+
bpm "unpack", "jquery-1.4.3.spd", :track_stderr => true
|
|
66
|
+
|
|
67
|
+
exit_status.should_not be_success
|
|
68
|
+
output = stderr.read
|
|
69
|
+
output.should include("There was a problem unpacking jquery-1.4.3.spd:")
|
|
70
|
+
output.should include("Permission denied")
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bpm unyank" do
|
|
4
|
+
let(:api_key) { "deadbeef" }
|
|
5
|
+
let(:creds) { bpm_dir("credentials") }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
goto_home
|
|
9
|
+
set_host
|
|
10
|
+
start_fake(FakeGemcutter.new(api_key))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "with a good api key" do
|
|
14
|
+
before do
|
|
15
|
+
write_api_key(api_key)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "unyanks a gem when sent with the right api key" do
|
|
19
|
+
bpm "yank", "core-test", "--undo", "-v", "1.4.3"
|
|
20
|
+
|
|
21
|
+
stdout.read.should include("Successfully unyanked gem: core-test (1.4.3)")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "must unyank a valid gem" do
|
|
25
|
+
bpm "yank", "blahblah", "--undo", "-v", "0.0.1"
|
|
26
|
+
|
|
27
|
+
stdout.read.should include("This gem could not be found")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "does not unyank and indexed gem" do
|
|
31
|
+
bpm "yank", "core-test", "--undo", "-v", "2.4.3"
|
|
32
|
+
|
|
33
|
+
stdout.read.should include("The version 2.4.3 is already indexed.")
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "shows rejection message if wrong api key is supplied" do
|
|
38
|
+
write_api_key("beefbeef")
|
|
39
|
+
|
|
40
|
+
bpm "yank", "core-test", "--undo", "-v", "1.4.3"
|
|
41
|
+
|
|
42
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe "bpm unyank with invalid api key" do
|
|
47
|
+
before do
|
|
48
|
+
cd(home)
|
|
49
|
+
env["HOME"] = home.to_s
|
|
50
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
51
|
+
write_api_key("beefbeef")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "must require a version" do
|
|
55
|
+
bpm "yank", "core-test", "--undo"
|
|
56
|
+
|
|
57
|
+
stdout.read.should include("Version required")
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe "bpm unyank without api key" do
|
|
62
|
+
before do
|
|
63
|
+
cd(home)
|
|
64
|
+
env["HOME"] = home.to_s
|
|
65
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "asks for login first if api key does not exist" do
|
|
69
|
+
bpm "yank", "core-test", "-v", "1.4.3", "--undo"
|
|
70
|
+
|
|
71
|
+
stdout.read.should include("Please login first with `bpm login`")
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe "bpm yank" do
|
|
4
|
+
let(:api_key) { "deadbeef" }
|
|
5
|
+
let(:creds) { bpm_dir("credentials") }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
goto_home
|
|
9
|
+
set_host
|
|
10
|
+
start_fake(FakeGemcutter.new(api_key))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
context "with a good api key" do
|
|
14
|
+
before do
|
|
15
|
+
write_api_key(api_key)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "yanks a gem when sent with the right api key" do
|
|
19
|
+
bpm "yank", "core-test", "-v", "1.4.3"
|
|
20
|
+
|
|
21
|
+
stdout.read.should include("Successfully yanked gem: core-test (1.4.3)")
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
it "must yank a valid gem" do
|
|
25
|
+
bpm "yank", "blahblah", "-v", "0.0.1"
|
|
26
|
+
|
|
27
|
+
stdout.read.should include("This gem could not be found")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "does not yank a yanked gem" do
|
|
31
|
+
bpm "yank", "core-test", "-v", "2.4.3"
|
|
32
|
+
|
|
33
|
+
stdout.read.should include("The version 2.4.3 has already been yanked.")
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "shows rejection message if wrong api key is supplied" do
|
|
38
|
+
write_api_key("beefbeef")
|
|
39
|
+
|
|
40
|
+
bpm "yank", "core-test", "-v", "1.4.3"
|
|
41
|
+
|
|
42
|
+
stdout.read.should include("One cannot simply walk into Mordor!")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe "bpm yank without api key" do
|
|
47
|
+
before do
|
|
48
|
+
cd(home)
|
|
49
|
+
env["HOME"] = home.to_s
|
|
50
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
51
|
+
write_api_key("beefbeef")
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "must require a version" do
|
|
55
|
+
bpm "yank", "core-test"
|
|
56
|
+
|
|
57
|
+
stdout.read.should include("Version required")
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe "bpm yank without api key" do
|
|
62
|
+
before do
|
|
63
|
+
cd(home)
|
|
64
|
+
env["HOME"] = home.to_s
|
|
65
|
+
env["RUBYGEMS_HOST"] = "http://localhost:9292"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "asks for login first if api key does not exist" do
|
|
69
|
+
bpm "yank", "core-test", "-v", "1.4.3"
|
|
70
|
+
|
|
71
|
+
stdout.read.should include("Please login first with `bpm login`")
|
|
72
|
+
end
|
|
73
|
+
end
|