| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /**
- * Tests for installedNozzleDiameters helper (#2618).
- *
- * The spool PA-Profil picker must fetch K-profiles across every nozzle the
- * printer actually has installed, not just the hardcoded 0.4mm default — else
- * a 0.6mm profile for the same filament is never surfaced. This helper lists
- * the distinct reported diameters, skipping empty/non-positive defaults, and
- * returns an empty array when the hardware hasn't been reported so the caller
- * can keep its own fallback.
- */
- import { describe, it, expect } from 'vitest';
- import { installedNozzleDiameters } from '../../utils/amsHelpers';
- describe('installedNozzleDiameters', () => {
- it('returns an empty array when status is null or undefined', () => {
- expect(installedNozzleDiameters(null)).toEqual([]);
- expect(installedNozzleDiameters(undefined)).toEqual([]);
- });
- it('returns an empty array when no nozzles are reported', () => {
- expect(installedNozzleDiameters({ nozzles: [] })).toEqual([]);
- expect(installedNozzleDiameters({})).toEqual([]);
- });
- it('skips empty-string and non-positive nozzle defaults', () => {
- expect(
- installedNozzleDiameters({ nozzles: [{ nozzle_diameter: '' }, { nozzle_diameter: '0' }] }),
- ).toEqual([]);
- });
- it('returns the single installed diameter', () => {
- expect(installedNozzleDiameters({ nozzles: [{ nozzle_diameter: '0.4' }] })).toEqual(['0.4']);
- });
- it('returns both diameters on a dual-nozzle printer, in order', () => {
- expect(
- installedNozzleDiameters({ nozzles: [{ nozzle_diameter: '0.4' }, { nozzle_diameter: '0.6' }] }),
- ).toEqual(['0.4', '0.6']);
- });
- it('dedupes repeated diameters (two 0.4 hotends report once)', () => {
- expect(
- installedNozzleDiameters({ nozzles: [{ nozzle_diameter: '0.4' }, { nozzle_diameter: '0.4' }] }),
- ).toEqual(['0.4']);
- });
- it('keeps only the valid diameter when one hotend is still an empty default', () => {
- expect(
- installedNozzleDiameters({ nozzles: [{ nozzle_diameter: '0.6' }, { nozzle_diameter: '' }] }),
- ).toEqual(['0.6']);
- });
- });
|