Skip to content

Commit e79e875

Browse files
committed
fix generate_png to not format base64 to buffer and back to base64
1 parent e193ecf commit e79e875

3 files changed

Lines changed: 10 additions & 9 deletions

File tree

x-pack/legacy/plugins/reporting/export_types/png/server/execute_job/index.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ test(`returns content_type of application/png`, async () => {
126126
const encryptedHeaders = await encryptHeaders({});
127127

128128
const generatePngObservable = (await generatePngObservableFactory(mockReporting)) as jest.Mock;
129-
generatePngObservable.mockReturnValue(Rx.of(Buffer.from('')));
129+
generatePngObservable.mockReturnValue(Rx.of('foo'));
130130

131131
const { content_type: contentType } = await executeJob(
132132
'pngJobId',
@@ -137,10 +137,10 @@ test(`returns content_type of application/png`, async () => {
137137
});
138138

139139
test(`returns content of generatePng getBuffer base64 encoded`, async () => {
140-
const testContent = 'test content';
140+
const testContent = 'raw string from get_screenhots';
141141

142142
const generatePngObservable = (await generatePngObservableFactory(mockReporting)) as jest.Mock;
143-
generatePngObservable.mockReturnValue(Rx.of({ buffer: Buffer.from(testContent) }));
143+
generatePngObservable.mockReturnValue(Rx.of({ base64: testContent }));
144144

145145
const executeJob = await executeJobFactory(mockReporting, getMockLogger());
146146
const encryptedHeaders = await encryptHeaders({});
@@ -150,5 +150,5 @@ test(`returns content of generatePng getBuffer base64 encoded`, async () => {
150150
cancellationToken
151151
);
152152

153-
expect(content).toEqual(Buffer.from(testContent).toString('base64'));
153+
expect(content).toEqual(testContent);
154154
});

x-pack/legacy/plugins/reporting/export_types/png/server/execute_job/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,14 @@ export const executeJobFactory: QueuedPngExecutorFactory = async function execut
5454
job.layout
5555
);
5656
}),
57-
map(({ buffer, warnings }) => {
57+
map(({ base64, warnings }) => {
5858
if (apmGeneratePng) apmGeneratePng.end();
5959

6060
return {
6161
content_type: 'image/png',
62-
content: buffer,
63-
size: buffer.length,
62+
content: base64,
63+
size: (base64 && base64.length) || 0,
64+
6465
warnings,
6566
};
6667
}),

x-pack/legacy/plugins/reporting/export_types/png/server/lib/generate_png.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export async function generatePngObservableFactory(reporting: ReportingCore) {
2323
browserTimezone: string,
2424
conditionalHeaders: ConditionalHeaders,
2525
layoutParams: LayoutParams
26-
): Rx.Observable<{ buffer: string; warnings: string[] }> {
26+
): Rx.Observable<{ base64: string | null; warnings: string[] }> {
2727
const apmTrans = apm.startTransaction('reporting generate_png', 'reporting');
2828
const apmLayout = apmTrans?.startSpan('create_layout', 'setup');
2929
if (!layoutParams || !layoutParams.dimensions) {
@@ -45,7 +45,7 @@ export async function generatePngObservableFactory(reporting: ReportingCore) {
4545
if (apmTrans) apmTrans.end();
4646

4747
return {
48-
buffer: results[0].screenshots[0].base64EncodedData,
48+
base64: results[0].screenshots[0].base64EncodedData,
4949
warnings: results.reduce((found, current) => {
5050
if (current.error) {
5151
found.push(current.error.message);

0 commit comments

Comments
 (0)