add complex logic to allow list and ignore list
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
import { strict as assert } from "assert";
|
||||
import { checkIsSkipItemOrNotByName } from "../src/sync";
|
||||
|
||||
describe("Sync: checkIsSkipItemOrNotByName", () => {
|
||||
it("should be ok everywhere for empty config", async () => {
|
||||
let isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ [],
|
||||
/* onlyAllowPaths */ []
|
||||
).finalIsIgnored;
|
||||
assert.ok(!isSkip);
|
||||
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ [""],
|
||||
/* onlyAllowPaths */ ["", "\n"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(!isSkip);
|
||||
});
|
||||
|
||||
it("should be ok for deny list", async () => {
|
||||
let isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ ["xxx"],
|
||||
/* onlyAllowPaths */ []
|
||||
).finalIsIgnored;
|
||||
assert.ok(isSkip);
|
||||
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"yyy.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ ["xxx"],
|
||||
/* onlyAllowPaths */ []
|
||||
).finalIsIgnored;
|
||||
assert.ok(!isSkip);
|
||||
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ ["xxx$"],
|
||||
/* onlyAllowPaths */ []
|
||||
).finalIsIgnored;
|
||||
assert.ok(!isSkip);
|
||||
|
||||
// if we deny a folder, we have to deny all the sub files
|
||||
// TODO: it's soooo hard to do the path resolution in this func with regex,
|
||||
// so we defer the detection to later steps now.
|
||||
// the test here doesn't work.
|
||||
// isSkip = checkIsSkipItemOrNotByName(
|
||||
// 'xxx/yyy.md',
|
||||
// false,
|
||||
// false,
|
||||
// false,
|
||||
// '.obsidian',
|
||||
// /* ignorePaths */ ['xxx/$'],
|
||||
// /* onlyAllowPaths */ []
|
||||
// ).finalIsIgnored;
|
||||
// assert.ok(isSkip);
|
||||
});
|
||||
|
||||
it("should be ok for allow list", async () => {
|
||||
let isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ [],
|
||||
/* onlyAllowPaths */ ["xxx"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(!isSkip);
|
||||
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"yyy.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ [""],
|
||||
/* onlyAllowPaths */ ["xxx"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(isSkip);
|
||||
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ [],
|
||||
/* onlyAllowPaths */ ["xxx$"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(isSkip);
|
||||
|
||||
// should NOT skip because we allow the sub file AND not deny the folder
|
||||
// TODO: it's soooo hard to do the path resolution in this func with regex,
|
||||
// so we defer the detection to later steps now.
|
||||
// the test here doesn't work.
|
||||
// isSkip = checkIsSkipItemOrNotByName(
|
||||
// 'xxx/',
|
||||
// false,
|
||||
// false,
|
||||
// false,
|
||||
// '.obsidian',
|
||||
// /* ignorePaths */ [],
|
||||
// /* onlyAllowPaths */ ['xxx/yyy.md']
|
||||
// ).finalIsIgnored;
|
||||
// assert.ok(!isSkip);
|
||||
});
|
||||
|
||||
it("should detect the name by two lists together", async () => {
|
||||
// should skip because we ignore the path
|
||||
let isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ ["xxx"],
|
||||
/* onlyAllowPaths */ ["yyy"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(isSkip);
|
||||
|
||||
// should skip because we disallow the whole folder
|
||||
isSkip = checkIsSkipItemOrNotByName(
|
||||
"xxx/yyy.md",
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
".obsidian",
|
||||
/* ignorePaths */ ["xxx"],
|
||||
/* onlyAllowPaths */ ["xxx/yyy.md"]
|
||||
).finalIsIgnored;
|
||||
assert.ok(isSkip);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user