diff options
Diffstat (limited to 'spec/write_rockspec_spec.lua')
| -rw-r--r-- | spec/write_rockspec_spec.lua | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/spec/write_rockspec_spec.lua b/spec/write_rockspec_spec.lua new file mode 100644 index 0000000..abd5c80 --- /dev/null +++ b/spec/write_rockspec_spec.lua @@ -0,0 +1,104 @@ +local test_env = require("spec.util.test_env") +local git_repo = require("spec.util.git_repo") +local lfs = require("lfs") +local run = test_env.run + +describe("luarocks write_rockspec tests #integration", function() + + lazy_setup(function() + test_env.setup_specs() + end) + + it("fails with invalid argument", function() + assert.is_false(run.luarocks_bool("write_rockspec invalid")) + end) + + it("fails with invalid zip", function() + assert.is_false(run.luarocks_bool("write_rockspec http://example.com/invalid.zip")) + end) + + describe("from #git #unix", function() + local git + + lazy_setup(function() + git = git_repo.start() + end) + + teardown(function() + git:stop() + end) + + it("runs with no flags/arguments", function() + local d = lfs.currentdir() + finally(function() + os.remove("testrock-dev-1.rockspec") + lfs.chdir(d) + test_env.remove_dir("testrock") + end) + os.execute("git clone git://localhost/testrock") + lfs.chdir("testrock") + assert.is_true(run.luarocks_bool("write_rockspec")) + assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) + end) + + it("runs", function() + finally(function() os.remove("testrock-dev-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock")) + assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) + end) + + it("runs with --tag", function() + finally(function() os.remove("testrock-2.3.0-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --tag=v2.3.0")) + assert.is.truthy(lfs.attributes("testrock-2.3.0-1.rockspec")) + -- TODO check contents + end) + + it("runs with format flag", function() + finally(function() os.remove("testrock-dev-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --rockspec-format=1.1 --lua-versions=5.1,5.2")) + assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) + -- TODO check contents + end) + + it("runs with full flags", function() + finally(function() os.remove("testrock-dev-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --lua-versions=5.1,5.2 --license=\"MIT/X11\" " + .. " --homepage=\"http://www.luarocks.org\" --summary=\"A package manager for Lua modules\" ")) + assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) + -- TODO check contents + end) + + it("with various flags", function() + finally(function() os.remove("testrock-dev-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec git://localhost/testrock --lib=fcgi --license=\"3-clause BSD\" " .. "--lua-versions=5.1,5.2")) + assert.is.truthy(lfs.attributes("testrock-dev-1.rockspec")) + -- TODO check contents + end) + end) + + describe("from tarball #mock", function() + + lazy_setup(function() + test_env.setup_specs(nil, "mock") + test_env.mock_server_init() + end) + lazy_teardown(function() + test_env.mock_server_done() + end) + + it("via http", function() + finally(function() os.remove("an_upstream_tarball-0.1-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec http://localhost:8080/file/an_upstream_tarball-0.1.tar.gz --lua-versions=5.1")) + assert.is.truthy(lfs.attributes("an_upstream_tarball-0.1-1.rockspec")) + -- TODO check contents + end) + + it("with a different basedir", function() + finally(function() os.remove("renamed_upstream_tarball-0.1-1.rockspec") end) + assert.is_true(run.luarocks_bool("write_rockspec http://localhost:8080/file/renamed_upstream_tarball-0.1.tar.gz --lua-versions=5.1")) + assert.is.truthy(lfs.attributes("renamed_upstream_tarball-0.1-1.rockspec")) + -- TODO check contents + end) + end) +end) |
