Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ export default class JsonFilesBubblesAnalysis extends RootAnalysis {
return "Files Bubbles";
}

async _contentLinesForEntry(zipFile, jsonEntry) {
async _contentLinesForEntry(jsonEntry) {
const fileContent = new TextDecoder("utf-8").decode(
await zipFile.getContent(jsonEntry)
await jsonEntry.getContent()
);
const linesCount = fileContent
.split("\n")
Expand All @@ -19,7 +19,7 @@ export default class JsonFilesBubblesAnalysis extends RootAnalysis {
linesCount + (line.trim().length >= 2 ? 1 : 0),
0
);
return { zipFile, zipEntry: jsonEntry, count: linesCount };
return { zipEntry: jsonEntry, count: linesCount };
}

async analyze({ zipFile, dataAccount }) {
Expand All @@ -31,7 +31,7 @@ export default class JsonFilesBubblesAnalysis extends RootAnalysis {
const relevantEntries = await jsonDataEntities(zipFile);
this._filesMessagesCount = await Promise.all(
relevantEntries.map((jsonEntry) =>
this._contentLinesForEntry(zipFile, jsonEntry)
this._contentLinesForEntry(jsonEntry)
)
);
this.active = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import JSONFilesBubblesAnalysis from "../../src/model/analyses/ministories/json-files-bubbles";
import commonStructure from "../../src/static/commonStructure";
import { ZipFileMock } from "@polypoly-eu/poly-import";
import { runAnalysisForExport } from "../utils/analyses-execution";

const commonJsonFiles = commonStructure
.filter((path) => path.match(/\.json$/))
.map((jsonPath) => {
return jsonPath.substring(1);
});

async function analyzeZipWithFiles(files) {
const zipFile = new ZipFileMock();
if (files.length > 0) {
files.forEach((jsonPath) => {
zipFile.addJsonEntry(jsonPath, { foo: "bar" });
});
}
const { analysisResult } = await runAnalysisForExport(
JSONFilesBubblesAnalysis,
zipFile
);
return analysisResult;
}

describe("JSON files analysis for non-empty zip", () => {
let status;
let analysis;

beforeAll(async () => {
({ status, analysis } = await analyzeZipWithFiles(commonJsonFiles));
});

it("reports successful status", () => {
expect(status.isSuccess).toBe(true);
});

it("has the right type and title", () => {
expect(analysis).toBeInstanceOf(JSONFilesBubblesAnalysis);
expect(analysis.title).toBe("Files Bubbles");
});

it("has the right message count", () => {
expect(analysis._filesMessagesCount).toHaveLength(10);
});
});