Skip to content

Improved Testability of Queries

Latest
Compare
Choose a tag to compare
@jongpie jongpie released this 30 Dec 03:47
daf14e9

Core Unlocked Package Changes

  • Fixed #687: Improved how records are queried & converted to the inner classes in LoggerSObjectProxy, which are used for dynamically interacting with some standard SObject types that don't exist in all orgs (Network, OmniProcess, etc.)
    • These changes improve the testability of this part of the code base, resulting in more thorough tests & improved code coverage for the core package
  • Fixed #457 and fixed #812: Changed Nebula Logger's behavior during test execution so that the org's actual CMDT records are now loaded & used (e.g., records in LoggerParameter__mdt). This is controlled internally by Nebula Logger via a new Apex class LoggerConfigurationSelector
    • This provides admins & developers with the ability to fully test their usage of Nebula Logger, including any customizations that have been made to the included CMDT records
    • Internally, Nebula Logger's own tests still only use mock CMDT records - they do not leverage the org's actual CMDT records
  • Scope creep: added access for the existing Visualforce page LogMassDelete to the permission sets LoggerAdmin, LoggerLogViewer, and LoggerEndUser
    • This page has been around for ~3 years, but the permission sets didn't explicitly provide access to the page

Async Failure Additions Plugin Changes - v1.0.3

  • Updated LogFinalizer to skip logging the async context when no error has occurred
  • Corrected some test failures caused by changes in core v4.15.3 (this release), now that the org's actual CMDT records are loaded during tests

Big Object Archiving Plugin Changes - v0.9.1

  • Corrected some test failures caused by changes in core v4.15.3 (this release), now that the org's actual CMDT records are loaded during tests

Pipeline Changes

  • Updated package.json + build.yml to auto-generate a package.xml manifest file for the core package's metadata, stored within the repo at nebula-logger/core.package.xml. Thanks to @Coding-With-The-Force for chatting about this!
    • Example usage: sf project deploy start --manifest ./nebula-logger/core.package.xml
    • This new file is intended to provide an official package.xml file for Nebula Logger to help any teams that meet the 2 criteria below:
      1. Team deploys Nebula Logger's metadata to their orgs (instead of installing the unlocked or managed packages)
      2. Team leverages package.xml manifest files in their deployment/devops process
  • Changed the pipeline to use the base scratch org for codecov.io integration, since this org will have the lowest code coverage of any of the scratch orgs.
    • Previously, the advanced scratch org was used, which will always have the highest code coverage. Knowing the highest coverage is a sort-of useful & fun metric, but knowing the minimum code coverage (via the base scratch org) is a much more important aspect to focus on.
  • Added some sample CMDT records to extra-tests directory (used by the pipeline) to help validate that the org's records are correctly returned by the new query selector class
  • Upgraded several dev dependencies in package.json / regenerated package-lock.json

Installation Info

Core Unlocked Package - no namespace

Async Failure Additions Plugin Unlocked Package - no namespace

ℹ️ This release of the plugin requires v4.15.3 of Nebula Logger's core unlocked package (above)

Big Object Archiving Plugin Unlocked Package - no namespace

ℹ️ This release of the plugin requires v4.15.3 of Nebula Logger's core unlocked package (above)