Merge pull request #58 from djwesty/vutukuri15/57

Fixed issue with extra colors of image input # 57
This commit is contained in:
Vutukuri15 2025-03-10 12:08:51 -07:00 committed by GitHub
commit da695be36d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 6 deletions

View File

@ -16,6 +16,8 @@ const ChipDetection = ({
Record<string, number>
>({});
const chipColors = ["white", "red", "green", "blue", "black"];
const requestCameraPermissions = async () => {
const cameraPermission = await ImagePicker.requestCameraPermissionsAsync();
return cameraPermission.granted;
@ -99,9 +101,19 @@ const ChipDetection = ({
const cleanJSON = rawContent.replace(/```json|```/g, "").trim();
const parsedData: Record<string, number> = JSON.parse(cleanJSON);
const filteredData = Object.fromEntries(
Object.entries(parsedData).filter(([_, count]) => count > 0)
);
const filteredData = Object.entries(parsedData)
.filter(([color]) => chipColors.includes(color))
.sort(
([colorA], [colorB]) =>
chipColors.indexOf(colorA) - chipColors.indexOf(colorB)
)
.reduce(
(acc, [color, count]) => {
acc[color] = count;
return acc;
},
{} as Record<string, number>
);
setLastDetectedChips(filteredData);
updateChipCount(filteredData);

View File

@ -40,7 +40,7 @@ describe("ChipDetection", () => {
});
afterEach(() => {
jest.restoreAllMocks(); // Reset all mocks to prevent test contamination
jest.restoreAllMocks();
});
it("renders correctly", () => {
@ -83,7 +83,11 @@ describe("ChipDetection", () => {
fireEvent.press(getByText(/take a photo/i));
await waitFor(() =>
expect(mockUpdateChipCount).toHaveBeenCalledWith({ red: 5, green: 3 })
expect(mockUpdateChipCount).toHaveBeenCalledWith({
red: 5,
green: 3,
blue: 0,
})
);
});
@ -144,7 +148,7 @@ describe("ChipDetection", () => {
choices: [
{
message: {
content: JSON.stringify({ red: 5, green: 3 }),
content: JSON.stringify({ red: 5, green: 3, blue: 0 }),
},
},
],
@ -163,6 +167,7 @@ describe("ChipDetection", () => {
expect(mockUpdateChipCount).toHaveBeenCalledWith({
red: 5,
green: 3,
blue: 0,
})
);
});