feat: add abstract component for expense income detail
This commit is contained in:
@@ -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);
|
||||
})
|
||||
})
|
||||
});
|
||||
@@ -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('');
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export type ExpenseIncomeVariant = 'expense'|'income';
|
||||
Reference in New Issue
Block a user