release: 0.2.0421.2
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { describe, expect, test, vi } from "vitest";
|
||||
|
||||
import { registerBackgroundMessageHandler } from "../src/background/index";
|
||||
|
||||
describe("background-index", () => {
|
||||
test("downloads csv files when the content script sends a download message", async () => {
|
||||
const listeners: Array<
|
||||
(message: unknown, sender: unknown, sendResponse: (response: unknown) => void) => boolean | void
|
||||
> = [];
|
||||
const download = vi.fn(async () => undefined);
|
||||
const sendResponse = vi.fn();
|
||||
|
||||
registerBackgroundMessageHandler({
|
||||
downloads: {
|
||||
download
|
||||
},
|
||||
runtime: {
|
||||
onMessage: {
|
||||
addListener(listener) {
|
||||
listeners.push(listener);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
expect(listeners).toHaveLength(1);
|
||||
const result = listeners[0](
|
||||
{
|
||||
csv: "列1,列2\n值1,值2",
|
||||
filename: "market.csv",
|
||||
type: "download-market-csv"
|
||||
},
|
||||
{},
|
||||
sendResponse
|
||||
);
|
||||
|
||||
expect(result).toBe(true);
|
||||
await new Promise((resolve) => setTimeout(resolve, 0));
|
||||
|
||||
expect(download).toHaveBeenCalledTimes(1);
|
||||
expect(download).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
filename: "market.csv",
|
||||
saveAs: false,
|
||||
url: expect.stringContaining("data:text/csv;charset=utf-8,")
|
||||
})
|
||||
);
|
||||
expect(sendResponse).toHaveBeenCalledWith({ ok: true });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user