mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
Revert "Enhance return details service with error handling and tests."
This reverts commit df49e3a79b.
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
|
||||
import { ReturnDetailsService } from './return-details.service';
|
||||
import { ReceiptService } from '@generated/swagger/oms-api';
|
||||
import { of } from 'rxjs';
|
||||
import { FetchReturnDetails } from './schemas';
|
||||
import { Receipt } from './models';
|
||||
|
||||
describe('ReturnDetailsService', () => {
|
||||
let spectator: SpectatorService<ReturnDetailsService>;
|
||||
const createService = createServiceFactory({
|
||||
service: ReturnDetailsService,
|
||||
mocks: [ReceiptService],
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
spectator = createService();
|
||||
});
|
||||
|
||||
it('should fetch return details successfully', (done) => {
|
||||
// Arrange
|
||||
const mockParams: FetchReturnDetails = { receiptId: 123 };
|
||||
const mockResponse: any = { result: { id: 123, data: 'mockData' } };
|
||||
const receiptService = spectator.inject(ReceiptService);
|
||||
receiptService.ReceiptGetReceipt.mockReturnValue(of(mockResponse));
|
||||
|
||||
// Act
|
||||
spectator.service.fetchReturnDetails(mockParams).subscribe((result) => {
|
||||
// Assert
|
||||
expect(result).toEqual(mockResponse.result as Receipt);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should throw an error if API response contains an error', (done) => {
|
||||
// Arrange
|
||||
const mockParams: FetchReturnDetails = { receiptId: 123 };
|
||||
const mockResponse: any = { error: 'API error' };
|
||||
const receiptService = spectator.inject(ReceiptService);
|
||||
receiptService.ReceiptGetReceipt.mockReturnValue(of(mockResponse));
|
||||
|
||||
// Act
|
||||
spectator.service.fetchReturnDetails(mockParams).subscribe({
|
||||
error: (err) => {
|
||||
// Assert
|
||||
expect(err.message).toBe('Failed to fetch return details');
|
||||
done();
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('should throw an error if parameters are invalid', (done) => {
|
||||
// Arrange
|
||||
const invalidParams: any = { receiptId: null };
|
||||
|
||||
// Act
|
||||
spectator.service.fetchReturnDetails(invalidParams).subscribe({
|
||||
error: (err) => {
|
||||
// Assert
|
||||
expect(err).toBeTruthy();
|
||||
done();
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -4,20 +4,10 @@ import { map, Observable, throwError } from 'rxjs';
|
||||
import { ReceiptService } from '@generated/swagger/oms-api';
|
||||
import { Receipt } from './models';
|
||||
|
||||
/**
|
||||
* Service responsible for fetching return details for a given receipt.
|
||||
*/
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class ReturnDetailsService {
|
||||
#receiptService = inject(ReceiptService);
|
||||
|
||||
/**
|
||||
* Fetches the return details for a specific receipt.
|
||||
*
|
||||
* @param params - The parameters required to fetch the return details, including the receipt ID.
|
||||
* @returns An observable that emits the fetched receipt details.
|
||||
* @throws Will throw an error if the parameters are invalid or if the API response contains an error.
|
||||
*/
|
||||
fetchReturnDetails(params: FetchReturnDetails): Observable<Receipt> {
|
||||
try {
|
||||
const parsed = FetchReturnDetailsSchema.parse(params);
|
||||
@@ -27,7 +17,7 @@ export class ReturnDetailsService {
|
||||
.pipe(
|
||||
map((res) => {
|
||||
if (res.error || !res.result) {
|
||||
throw new Error(res.message || 'Failed to fetch return details');
|
||||
throw new Error('Failed to fetch return details');
|
||||
}
|
||||
|
||||
return res.result as Receipt;
|
||||
|
||||
Reference in New Issue
Block a user