feat: add abstract component for expense income detail

This commit is contained in:
2025-08-19 22:33:54 -03:00
parent d914601af9
commit 027f2d3ab2
3 changed files with 63 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AbstractExpenseIncomeDetailComponent } from './abstract-expense-income-detail.component';
describe('AbstractExpenseIncomeDetailComponent', () => {
const RED_VAR_TEXT = 'var(--mw-red)';
const GREEN_VAR_TEXT = 'var(--mw-green)'
let component: AbstractExpenseIncomeDetailComponent;
let fixture: ComponentFixture<AbstractExpenseIncomeDetailComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [AbstractExpenseIncomeDetailComponent]
})
.compileComponents();
fixture = TestBed.createComponent(AbstractExpenseIncomeDetailComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('amount text color ', () => {
it('should be green for income variant', () => {
fixture.componentRef.setInput('variant', 'income');
expect(component.amountProps().color).toBe(GREEN_VAR_TEXT);
});
it('should be red for expense variant', () => {
fixture.componentRef.setInput('variant', 'expense');
expect(component.amountProps().color).toBe(RED_VAR_TEXT);
})
})
});

View File

@@ -0,0 +1,25 @@
import { Component, computed, input } from '@angular/core';
import { ExpenseIncomeVariant } from '../../types/ExpenseIncomeVariants';
@Component({
selector: 'mw-abstract-expense-income-detail',
standalone: true,
imports: [],
template: '',
styles: ''
})
export class AbstractExpenseIncomeDetailComponent {
variant = input<ExpenseIncomeVariant>('income');
amount = input(0);
amountProps = computed(() => ({
amount: this.amount(),
color: this.variant() === 'income' ? 'var(--mw-green)' : 'var(--mw-red)'
}));
description = input('')
iconProps = input({
symbol:"",
backgroundColor:"var(--mw-white)",
color:"var(--mw-white)"
});
whom = input('');
}

View File

@@ -0,0 +1 @@
export type ExpenseIncomeVariant = 'expense'|'income';