ExtentScreenshotConsumer.java

package io.github.giulong.spectrum.utils.events.html_report;

import static com.aventstack.extentreports.MediaEntityBuilder.createScreenCaptureFromPath;
import static io.github.giulong.spectrum.enums.Frame.MANUAL;

import java.nio.file.Path;

import com.fasterxml.jackson.annotation.JsonView;

import io.github.giulong.spectrum.internals.jackson.views.Views.Internal;
import io.github.giulong.spectrum.pojos.events.Event;
import io.github.giulong.spectrum.pojos.events.Event.Payload;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@JsonView(Internal.class)
public class ExtentScreenshotConsumer extends ScreenshotConsumer {

    @Override
    public void accept(final Event event) {
        log.debug("Adding screenshot to the extent report");

        final int frameNumber = configuration.getVideo().getAndIncrementFrameNumberFor(testData, MANUAL);
        final Path path = fileUtils.createTempFile("screenshot", ".png");
        final Payload payload = event.getPayload();
        final String tag = htmlUtils.buildFrameTagFor(frameNumber, payload.getMessage(), testData, "screenshot-message");

        currentNode.log(payload.getStatus(), tag, createScreenCaptureFromPath(path.toString()).build());
        addScreenshot(path);
    }
}