Skip to content

Release v0.2.1 - #78

Merged
roncodes merged 9 commits into
mainfrom
release/v0.2.1
Sep 16, 2026
Merged

roncodes merged 9 commits into
mainfrom
release/v0.2.1

Conversation

@roncodes

Copy link
Copy Markdown
Member

Release branch for v0.2.1. Feature PRs targeting this release are retargeted here and merge into this branch; merging this PR into main triggers the release-tag workflow, which tags v0.2.1 from package.json.

Included

Release prep in this branch

  • package.json bumped 0.2.00.2.1
  • RELEASE.md seeded with the v0.2.1 header and highlights (placeholders removed so the tag job passes)

Update RELEASE.md before merging if the included set changes.

roncodes and others added 3 commits September 10, 2026 16:16
The inspection form and submission models handed out `createdAt` and its
siblings as the raw `Date` from the attribute. A table column bound to
`createdAt` therefore rendered a full datetime instance string instead of
a date, which is what the inspection forms index shows today.

Every other model in this package formats these getters, guarding an
unparseable value with `isValidDate` first, so do the same here.

The form model also carried a `frequency` attribute. Nothing schedules an
inspection from it, and FleetOps has dropped it from the API resource and
the console, so it is removed here too.
The inspection form and submission tests still asserted that the camelCase
date getters return the raw Date, so they failed once the getters began
formatting it, and the null branch of each isValidDate guard was never run,
which held coverage below the 100% gate.

Assert each getter through assertDateGetters, like the other models: the
yyyy-MM-dd HH:mm rendering of a real date, and null for null, undefined and
an unparseable Date. Also assert that the form no longer declares frequency.
Bump package.json to 0.2.1 and seed RELEASE.md so the release-tag workflow
can validate the version once this branch merges to main.
@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (7831acc) to head (7f6b598).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #78   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          114       116    +2     
  Lines         2899      2931   +32     
  Branches       687       698   +11     
=========================================
+ Hits          2899      2931   +32     
Flag Coverage Δ
fleetops-data 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
addon/models/fuel-provider-connection.js 100.00% <100.00%> (ø)
addon/models/inspection-form.js 100.00% <100.00%> (ø)
addon/models/inspection-submission.js 100.00% <100.00%> (ø)
addon/serializers/fuel-provider-connection.js 100.00% <100.00%> (ø)
addon/serializers/maintenance-schedule.js 100.00% <100.00%> (ø)
addon/serializers/maintenance.js 100.00% <100.00%> (ø)
addon/serializers/work-order.js 100.00% <100.00%> (ø)
...don/utils/clear-unset-polymorphic-relationships.js 100.00% <100.00%> (ø)

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7831acc...7f6b598. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

roncodes and others added 6 commits September 14, 2026 13:26
Format the inspection models' display dates
- Declare credentials on fuel provider connections so the token and auth
  method verified by Test Connection are included when saving an integration.
- Omit null or absent credentials on updates to fetched records, preserving
  stored write-only tokens unless the operator supplies a replacement.
- Expose imported and unmatched summary counts with explicit computed
  dependencies so integration tables update when their summaries change.
- Register fuel-provider-sync-run models and serializers in addon and host
  namespaces, including date windows, progress, outcomes, errors and metadata.
- Add regression coverage for create/update serialization, write-only save
  responses, repeated public-ID queries retaining UUID record identity, and
  deserialization of connection-scoped sync history.

Companion data contracts for the Fleet-Ops fuel integration improvements in
fleetbase/fleetops@cce089dc, targeting the v0.2.1 release branch.

Validation: all 23 focused fuel-provider tests passed; all eight changed
JavaScript files passed ESLint, and the staged diff passed whitespace checks.
Exercise lastImported and lastUnmatched for new connections, absent or
partial sync summaries, explicit null counts, populated results, and zero
unmatched purchases. Verify that replacing a sync result and updating its
nested counts both invalidate the cached display values.

These two previously untested getters accounted for all CI coverage gaps:
two statements, two functions, two lines, and four branch paths. Keep the
100% coverage thresholds, instrumentation, and exclusions unchanged.

Validation: 1,051 tests passed. The full coverage gate passes across 147
source files: 2,258/2,258 statements, 1,467/1,467 branches, 727/727 functions,
and 2,205/2,205 lines. The changed test also passes ESLint.
…ontracts

Fix fuel integration credential persistence and sync history records
…asserting, and send cleared ones as cleared

The work order, maintenance and maintenance schedule serializers read their
polymorphic type with snapshot.attr('<key>_type'), but those models declare no
such attribute, so saving one in a debug build failed with "Model has no
attribute named 'target_type' defined". They now read it through
snapshot.attributes().

Ember Data only calls serializePolymorphicType for a related record that is
present, so removing a target or assignee sent null embedded data while the
_uuid and _type columns kept the old record. Unset relationships are now sent
with both cleared.
Fix work order, maintenance and schedule polymorphic serialization
@roncodes
roncodes merged commit eacf58f into main Sep 16, 2026
11 checks passed
@roncodes
roncodes deleted the release/v0.2.1 branch September 16, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant