Use different ZIP file for unzip tests
This commit is contained in:
@@ -6,72 +6,44 @@ import {
|
||||
readZipEntries,
|
||||
} from "../../../src/common/unzip";
|
||||
|
||||
const zipWithSingleFilePath = resolve(
|
||||
__dirname,
|
||||
"../../vscode-tests/no-workspace/data/archive-filesystem-provider-test/single_file.zip",
|
||||
);
|
||||
const zipWithFolderPath = resolve(
|
||||
__dirname,
|
||||
"../../vscode-tests/no-workspace/data/archive-filesystem-provider-test/zip_with_folder.zip",
|
||||
);
|
||||
const zipPath = resolve(__dirname, "../data/unzip/test-zip.zip");
|
||||
|
||||
describe("openZip", () => {
|
||||
it("can open a zip file", async () => {
|
||||
const zipFile = await openZip(zipWithFolderPath, {
|
||||
const zipFile = await openZip(zipPath, {
|
||||
lazyEntries: false,
|
||||
});
|
||||
|
||||
expect(zipFile.entryCount).toEqual(8);
|
||||
expect(zipFile.entryCount).toEqual(11);
|
||||
});
|
||||
});
|
||||
|
||||
describe("readZipEntries", () => {
|
||||
it("can read the entries when there is a single file", async () => {
|
||||
const zipFile = await openZip(zipWithSingleFilePath, {
|
||||
it("can read the entries when there are multiple directories", async () => {
|
||||
const zipFile = await openZip(zipPath, {
|
||||
lazyEntries: true,
|
||||
});
|
||||
const entries = await readZipEntries(zipFile);
|
||||
|
||||
expect(entries.map((entry) => entry.fileName).sort()).toEqual([
|
||||
"src_archive/",
|
||||
"src_archive/aFileName.txt",
|
||||
]);
|
||||
});
|
||||
|
||||
it("can read the entries when there are multiple folders", async () => {
|
||||
const zipFile = await openZip(zipWithFolderPath, {
|
||||
lazyEntries: true,
|
||||
});
|
||||
const entries = await readZipEntries(zipFile);
|
||||
|
||||
expect(entries.map((entry) => entry.fileName).sort()).toEqual([
|
||||
"__MACOSX/._folder1",
|
||||
"__MACOSX/folder1/._textFile.txt",
|
||||
"__MACOSX/folder1/._textFile2.txt",
|
||||
"folder1/",
|
||||
"folder1/folder2/",
|
||||
"folder1/folder2/textFile3.txt",
|
||||
"folder1/textFile.txt",
|
||||
"folder1/textFile2.txt",
|
||||
"directory/",
|
||||
"directory/file.txt",
|
||||
"directory/file2.txt",
|
||||
"directory2/",
|
||||
"directory2/file.txt",
|
||||
"empty-directory/",
|
||||
"tools/",
|
||||
"tools/osx64/",
|
||||
"tools/osx64/java-aarch64/",
|
||||
"tools/osx64/java-aarch64/bin/",
|
||||
"tools/osx64/java-aarch64/bin/java",
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("excludeDirectories", () => {
|
||||
it("excludes directories when there is a single file", async () => {
|
||||
const zipFile = await openZip(zipWithSingleFilePath, {
|
||||
lazyEntries: true,
|
||||
});
|
||||
const entries = await readZipEntries(zipFile);
|
||||
const entriesWithoutDirectories = excludeDirectories(entries);
|
||||
|
||||
expect(
|
||||
entriesWithoutDirectories.map((entry) => entry.fileName).sort(),
|
||||
).toEqual(["src_archive/aFileName.txt"]);
|
||||
});
|
||||
|
||||
it("excludes directories when there are multiple folders", async () => {
|
||||
const zipFile = await openZip(zipWithFolderPath, {
|
||||
it("excludes directories", async () => {
|
||||
const zipFile = await openZip(zipPath, {
|
||||
lazyEntries: true,
|
||||
});
|
||||
const entries = await readZipEntries(zipFile);
|
||||
@@ -80,26 +52,24 @@ describe("excludeDirectories", () => {
|
||||
expect(
|
||||
entriesWithoutDirectories.map((entry) => entry.fileName).sort(),
|
||||
).toEqual([
|
||||
"__MACOSX/._folder1",
|
||||
"__MACOSX/folder1/._textFile.txt",
|
||||
"__MACOSX/folder1/._textFile2.txt",
|
||||
"folder1/folder2/textFile3.txt",
|
||||
"folder1/textFile.txt",
|
||||
"folder1/textFile2.txt",
|
||||
"directory/file.txt",
|
||||
"directory/file2.txt",
|
||||
"directory2/file.txt",
|
||||
"tools/osx64/java-aarch64/bin/java",
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("openZipBuffer", () => {
|
||||
it("can read an entry in the zip file", async () => {
|
||||
const zipFile = await openZip(zipWithFolderPath, {
|
||||
const zipFile = await openZip(zipPath, {
|
||||
lazyEntries: true,
|
||||
autoClose: false,
|
||||
});
|
||||
const entries = await readZipEntries(zipFile);
|
||||
|
||||
const entry = entries.find(
|
||||
(entry) => entry.fileName === "folder1/textFile.txt",
|
||||
(entry) => entry.fileName === "directory/file.txt",
|
||||
);
|
||||
expect(entry).toBeDefined();
|
||||
if (!entry) {
|
||||
@@ -107,7 +77,7 @@ describe("openZipBuffer", () => {
|
||||
}
|
||||
|
||||
const buffer = await openZipBuffer(zipFile, entry);
|
||||
expect(buffer).toHaveLength(12);
|
||||
expect(buffer.toString("utf8")).toEqual("I am a text\n");
|
||||
expect(buffer).toHaveLength(13);
|
||||
expect(buffer.toString("utf8")).toEqual("I am a file\n\n");
|
||||
});
|
||||
});
|
||||
|
||||
BIN
extensions/ql-vscode/test/unit-tests/data/unzip/test-zip.zip
Normal file
BIN
extensions/ql-vscode/test/unit-tests/data/unzip/test-zip.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user