diff options
Diffstat (limited to 'spec/doc_spec.lua')
| -rw-r--r-- | spec/doc_spec.lua | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/spec/doc_spec.lua b/spec/doc_spec.lua new file mode 100644 index 0000000..f48f951 --- /dev/null +++ b/spec/doc_spec.lua @@ -0,0 +1,154 @@ +local test_env = require("spec.util.test_env") +local run = test_env.run +local testing_paths = test_env.testing_paths + +describe("luarocks doc #integration", function() + before_each(function() + test_env.setup_specs() + end) + + describe("basic tests", function() + it("with no flags/arguments", function() + assert.is_false(run.luarocks_bool("doc")) + end) + + it("with invalid argument", function() + assert.is_false(run.luarocks_bool("doc invalid")) + end) + + it("with no homepage and no doc folder", function() + test_env.run_in_tmp(function(tmpdir) + test_env.write_file("test-1.0-1.rockspec", [[ + package = "test" + version = "1.0-1" + source = { + url = "file://test.lua" + } + build = { + type = "builtin", + modules = { + test = "test.lua" + } + } + ]], finally) + test_env.write_file("test.lua", "return {}", finally) + + assert.is_true(run.luarocks_bool("install test-1.0-1.rockspec")) + assert.is_false(run.luarocks_bool("doc test --home")) + end, finally) + end) + + it("with no doc folder but with homepage", function() + test_env.run_in_tmp(function(tmpdir) + test_env.write_file("test-1.0-1.rockspec", [[ + package = "test" + version = "1.0-1" + source = { + url = "file://test.lua" + } + description = { + homepage = "http://www.example.com" + } + build = { + type = "builtin", + modules = { + test = "test.lua" + } + } + ]], finally) + test_env.write_file("test.lua", "return {}", finally) + + assert.is_true(run.luarocks_bool("install test-1.0-1.rockspec")) + local output = assert.is.truthy(run.luarocks("doc test")) + assert.is.truthy(output:find("documentation directory not found")) + end, finally) + end) + end) + + describe("#namespaces", function() + it("retrieves docs for a namespaced package from the command-line", function() + assert(run.luarocks_bool("build a_user/a_rock --server=" .. testing_paths.fixtures_dir .. "/a_repo" )) + assert(run.luarocks_bool("build a_rock 1.0 --keep --server=" .. testing_paths.fixtures_dir .. "/a_repo" )) + assert.match("a_rock 2.0", run.luarocks("doc a_user/a_rock")) + end) + end) + + describe("tests with flags", function() + it("of installed package", function() + test_env.run_in_tmp(function(tmpdir) + test_env.write_file("test-1.0-1.rockspec", [[ + package = "test" + version = "1.0-1" + source = { + url = "file://test.lua" + } + build = { + type = "builtin", + modules = { + test = "test.lua" + } + } + ]], finally) + test_env.write_file("test.lua", "return {}", finally) + + assert.is_true(run.luarocks_bool("install test-1.0-1.rockspec")) + lfs.mkdir(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc") + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/doc.md", "", finally) + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/readme.md", "", finally) + assert.is_true(run.luarocks_bool("doc test")) + end, finally) + end) + + it("with --list", function() + test_env.run_in_tmp(function(tmpdir) + test_env.write_file("test-1.0-1.rockspec", [[ + package = "test" + version = "1.0-1" + source = { + url = "file://test.lua" + } + build = { + type = "builtin", + modules = { + test = "test.lua" + } + } + ]], finally) + test_env.write_file("test.lua", "return {}", finally) + + assert.is_true(run.luarocks_bool("install test-1.0-1.rockspec")) + lfs.mkdir(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc") + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/doc1.md", "", finally) + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/doc2.md", "", finally) + local output = assert.is.truthy(run.luarocks("doc test --list")) + assert.is.truthy(output:find("doc1%.md")) + assert.is.truthy(output:find("doc2%.md")) + end, finally) + end) + + it("with --porcelain", function() + test_env.run_in_tmp(function(tmpdir) + test_env.write_file("test-1.0-1.rockspec", [[ + package = "test" + version = "1.0-1" + source = { + url = "file://test.lua" + } + build = { + type = "builtin", + modules = { + test = "test.lua" + } + } + ]], finally) + test_env.write_file("test.lua", "return {}", finally) + + assert.is_true(run.luarocks_bool("install test-1.0-1.rockspec")) + lfs.mkdir(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc") + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/doc1.md", "", finally) + test_env.write_file(testing_paths.testing_sys_rocks .. "/test/1.0-1/doc/doc2.md", "", finally) + assert.is_true(run.luarocks_bool("doc test --porcelain")) + end, finally) + end) + end) +end) |
