2.3.1.0 release notes

 

2.3.1.0

  • Issue 579 - Added a new Apex unit testing configuration option, Illuminated Cloud | Configure Application | Unit Tests and Code Coverage | Unit Tests | Deploy before running unit tests (disabled by default), that, when enabled, attempts to bring the Salesforce organization up to date before starting unit test execution for the requested set of Apex test classes/methods.

    The Salesforce organization is updated according to the project type and connection configuration as follows:
    • Source-tracked orgs are updated using Push Metadata.
    • Non-source-tracked orgs that are not configured to use conflict detection or are configured to use conflict detection with dedicated logins are updated using Deploy Modified Metadata.
    • Non-source-tracked orgs that are configured to use conflict detection with shared logins — which is incompatible with Deploy Modified Metadata as both mechanisms use the same timestamp comparisons for different purposes — are updated using Deploy All Metadata for all test classes included in the unit test run configuration and their transitive dependencies including not just referenced Apex types but also referenced SObjects/fields, custom labels, Visualforce pages/components, Flows, DataWeave scripts, etc.
    If the resulting deployment fails or is cancelled, the user is notified accordingly and is prompted as to whether or not to continue with unit test execution.

    Note that there is a known issue when conflicts are detected during the pre-test run push where, if the user chooses to overwrite the server, the deployment will be seen as failed and unit tests will not be executed when the push ignoring conflicts completes. I'll take care of that for the next build.

    Also note that this feature does not currently support bringing multi-module projects completely up-to-date before unit test execution. At present if the requested set of tests spans multiple modules, no attempt is made to bring the organization up-to-date before running tests; if all tests are from a single module, only metadata from that module is deployed even if there are out-of-date metadata files in its dependencies. As appropriate, a message is written to the unit test execution output console with whatever actions were taken (or not taken) and why. Depending on end user feedback, I may look at supporting this feature for multiple modules in the future, but trust that it's actually quite complex when the deployment requires multiple chained asynchronous operations followed by a conditionally-executed unit test execution, and my guess is that the current implementation addresses the vast majority of users' needs.
  • Issue 2557 - Fixed a false positive from the Apex Modifier Agreement code inspection where a property that is both @AuraEnabled and static would be incorrectly reported as invalid. Fields with that annotation/modifier combination are still correctly reported as invalid.
  • Issue 2559 - Fixed an issue with PMD 7.1.0. My guess is that this won't be the last minor fix required to support new PMD 7 builds. The change from PMD 6 to PMD 7 was quite significant, and I'm sure things will continue to settle slightly for the next several minor updates. I'm always trying to stay on top of new builds and any required changes, but if you update to a brand new PMD 7 version and find things to be broken, please report it to me and return to the previous working version until I release an IC2 update that addresses the breaking changes.
  • Issue 2560 - Fixed an Apex parser issue with SOQL time literals.
  • Issue 2561 - Fixed an error that could occur when pushing or pulling metadata immediately after opening a project.
  • Fixed a few issues with Deploy Modified Metadata not properly performing dirty checks for "pseudo-decomposed" metadata types such as custom object translations and territory metadata. If you've found any other issues where this action does not properly detect the out-of-date/up-to-date state of local files, please report them so that I can ensure that it's as reliable and accurate as possible.
  • Implemented several Go To Related improvements for cross-metadata type relationships:
    • SObject fields in OST stub classes are now properly cross-correlated with the corresponding XML metadata files/elements.
    • Flow interview OST stub classes are now properly cross-correlated with the corresponding XML metadata files.
    • DataWeave script OST stub classes are now properly cross-correlated with the corresponding DataWeave script files.
  • Added inspection suppression for Aura JavaScript source files where the standard component/event/helper parameters would be flagged as unused even though they're required and the top-level ({...}); expression would be flagged as a bad expression statement.
  • Implemented a few fixes for "Slow operations are prohibited on EDT" messages in idea.log. I have another set of fixes on a separate branch that seems to address the vast majority of the remaining instances of this noisy logged message, but those changes require significantly more testing and will be included in a future build once I feel confident they aren't causing other issues.
  • Other related fixes and improvements.