spec/util_paths_spec.lua
author Kim Alvefur <zash@zash.se>
Thu, 28 Mar 2024 15:26:57 +0100
changeset 13472 98806cac64c3
parent 11186 bab8d01e139a
permissions -rw-r--r--
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11185
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
local sep = package.config:match("(.)\n");
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
describe("util.paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
	local paths = require "util.paths";
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	describe("#join()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
		it("returns single component as-is", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
			assert.equal("foo", paths.join("foo"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
		it("joins paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
			assert.equal("foo"..sep.."bar", paths.join("foo", "bar"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
		it("joins longer paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
			assert.equal("foo"..sep.."bar"..sep.."baz", paths.join("foo", "bar", "baz"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
		it("joins even longer paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
			assert.equal("foo"..sep.."bar"..sep.."baz"..sep.."moo", paths.join("foo", "bar", "baz", "moo"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
	end)
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
	describe("#glob_to_pattern()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
		it("works", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
			assert.equal("^thing.%..*$", paths.glob_to_pattern("thing?.*"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
	end)
11186
bab8d01e139a util_paths_spec: Trim trailing white space
Kim Alvefur <zash@zash.se>
parents: 11185
diff changeset
    24
11185
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
	describe("#resolve_relative_path()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
		it("returns absolute paths as-is", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
			if sep == "/" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
				assert.equal("/tmp/path", paths.resolve_relative_path("/run", "/tmp/path"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
			elseif sep == "\\" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
				assert.equal("C:\\Program Files", paths.resolve_relative_path("A:\\", "C:\\Program Files"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
			end
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
		it("resolves relative paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
			if sep == "/" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
				assert.equal("/run/path", paths.resolve_relative_path("/run", "path"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
			end
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
	end)
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
end)