import { Component, Vue, Prop } from "vue-facing-decorator"; /** * ProjectIcon Mock Component * * A mock implementation of the ProjectIcon component for testing purposes. * Provides the same interface as the original component but with simplified behavior * for unit testing scenarios. * * @author Matthew Raymer */ @Component({ name: "ProjectIcon" }) export default class ProjectIconMock extends Vue { @Prop entityId = ""; @Prop iconSize = 0; @Prop imageUrl = ""; @Prop linkToFullImage = false; /** * Mock method to check if component should show image * @returns boolean - true if image should be displayed */ get shouldShowImage(): boolean { return !!this.imageUrl; } /** * Mock method to check if component should be a link * @returns boolean - true if component should be a link */ get shouldBeLink(): boolean { return this.linkToFullImage && !!this.imageUrl; } /** * Mock method to get container CSS classes * @returns string - CSS classes for the container */ get containerClasses(): string { return "h-full w-full object-contain"; } /** * Mock method to get image CSS classes * @returns string - CSS classes for the image */ get imageClasses(): string { return "w-full h-full object-contain"; } /** * Mock method to generate icon HTML * @returns string - HTML for the icon */ generateIcon(): string { if (this.imageUrl) { return ``; } else { return ``; } } /** * Mock method to get blank config * @returns object - Blank configuration for jdenticon */ get blankConfig() { return { lightness: { color: [1.0, 1.0], grayscale: [1.0, 1.0], }, saturation: { color: 0.0, grayscale: 0.0, }, backColor: "#0000", }; } /** * Mock method to check if should use blank config * @returns boolean - true if blank config should be used */ get shouldUseBlankConfig(): boolean { return !this.entityId; } }