From e4a1676b014adf0c8970d34500a5e9dc422c2948 Mon Sep 17 00:00:00 2001 From: "ysachdeva@salesforce.com" Date: Mon, 4 May 2026 18:28:35 +0530 Subject: [PATCH] fix: replace stub eval data with real adk-core datasets Replace fabricated eval stubs with actual gold files and seed-data from adk-core: payment_overdue (formula field), AssetFedexValidationRule (validation rule with lookup deps), QueueableWithCalloutRecipes (Apex with class dependencies). --- .../gold/classes/RestClient.cls | 20 ++++++ .../gold/classes/RestClient.cls-meta.xml} | 1 - .../gold/classes/TestFactory.cls | 6 ++ .../gold/classes/TestFactory.cls-meta.xml | 5 ++ .../prompt.md | 1 + .../classes/QueueableWithCalloutRecipes.cls | 70 +++++++++++++++++++ .../gold/classes/BaseProcessor.cls | 3 - .../prompt.md | 1 - .../Adoption__c/Adoption__c.object-meta.xml | 12 ---- .../Animal__c/Animal__c.object-meta.xml | 12 ---- .../prompt.md | 1 - .../fields/Payment_Due_Date__c.field-meta.xml | 1 - .../fields/Payment_Status__c.field-meta.xml | 9 ++- .../prompt.md | 2 +- .../fields/Payment_Overdue__c.field-meta.xml | 21 ++++++ .../fields/AssetProvided__c.field-meta.xml | 8 +++ .../fields/AssetServicedBy__c.field-meta.xml | 8 +++ .../prompt.md | 1 + ...setFedexValidation.validationRule-meta.xml | 20 ++++++ 19 files changed, 169 insertions(+), 33 deletions(-) create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls rename skills/generating-eval-seed-data/tests/evals/{generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls-meta.xml => generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls-meta.xml} (70%) create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls-meta.xml create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/prompt.md create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/seed-data/classes/QueueableWithCalloutRecipes.cls delete mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls delete mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/prompt.md delete mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Adoption__c/Adoption__c.object-meta.xml delete mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Animal__c/Animal__c.object-meta.xml delete mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/prompt.md create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/seed-data/objects/Contract/fields/Payment_Overdue__c.field-meta.xml create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetProvided__c.field-meta.xml create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetServicedBy__c.field-meta.xml create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/prompt.md create mode 100644 skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/seed-data/objects/Asset/validationRules/AssetFedexValidation.validationRule-meta.xml diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls new file mode 100644 index 0000000..38be2a5 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls @@ -0,0 +1,20 @@ +public with sharing class RestClient { + public enum HttpVerb { + GET, + POST, + PUT, + PATCH, + DEL + } + + public static HttpResponse makeApiCall( + String namedCredential, + HttpVerb method, + String path + ) { + HttpRequest request = new HttpRequest(); + request.setEndpoint('callout:' + namedCredential + '/' + path); + request.setMethod(method.name()); + return new Http().send(request); + } +} diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls-meta.xml similarity index 70% rename from skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls-meta.xml rename to skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls-meta.xml index eb209f7..998805a 100644 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls-meta.xml +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/RestClient.cls-meta.xml @@ -1,4 +1,3 @@ - 62.0 diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls new file mode 100644 index 0000000..cb3fbce --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls @@ -0,0 +1,6 @@ +@isTest +public class TestFactory { + public static List invalidateSObjectList(List records) { + return records; + } +} diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls-meta.xml new file mode 100644 index 0000000..998805a --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/gold/classes/TestFactory.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/prompt.md b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/prompt.md new file mode 100644 index 0000000..bc26f39 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/prompt.md @@ -0,0 +1 @@ +Generate seed-data for an Apex dataset. The gold file is a QueueableWithCalloutRecipes class that implements Queueable and Database.AllowsCallouts. It references RestClient.makeApiCall() and TestFactory.invalidateSObjectList(). The dataset path is domains/apex/datasets/QueueableWithCalloutRecipes/. My target org is myDevOrg. \ No newline at end of file diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/seed-data/classes/QueueableWithCalloutRecipes.cls b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/seed-data/classes/QueueableWithCalloutRecipes.cls new file mode 100644 index 0000000..c39451e --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-callout/seed-data/classes/QueueableWithCalloutRecipes.cls @@ -0,0 +1,70 @@ +/** + * @description Demmonstrates the use of the Queueable interface to make + * callouts. The methods in this class are called by the system at run time. + * To enqueue this job and see it's results, use `System.enqueueJob(new QueueableWithCalloutRecipes());` + * + * More on the Queable interface: + * https://sfdc.co/queueable-apex + * + * @group Async Apex Recipes + * @see RestClient + */ +public with sharing class QueueableWithCalloutRecipes implements Queueable, Database.AllowsCallouts { + // This allows us to cause a DML failure in execute batch, enabling testing. + @testVisible + private static Boolean throwError = false; + @testVisible + private static Boolean circuitBreakerThrown = false; + + /** + * @description Internal custom exception class + */ + public class QueueableWithCalloutRecipesException extends Exception { + } + + /** + * @description This is the only required method to implement Queueable. + * Queueable classes that also implement Database.allowsCallouts can make + * HTTP requests to external services. In this recipe we make a GET request + * to developer.salesforce.com + * @param qc dependency injected by the system + * @example + * ``` + * System.enqueueJob(new QueueableWithCalloutRecipes()); + * ``` + */ + public static void execute(QueueableContext qc) { + HttpResponse response = RestClient.makeApiCall( + 'GoogleBooksAPI', + RestClient.HttpVerb.GET, + 'volumes?q=salesforce' + ); + List accounts = [ + SELECT Id + FROM Account + ORDER BY Id + LIMIT 1000 + ]; + for (Account acct : accounts) { + acct.Description = String.valueOf(response.getStatusCode()); + } + if (Test.isRunningTest() && throwError) { + accounts = (List) TestFactory.invalidateSObjectList( + accounts + ); + } + + try { + update accounts; + } catch (DmlException dmle) { + System.debug( + LoggingLevel.INFO, + 'real life use cases should do something more than just logging the error: ' + + dmle.getMessage() + ); + if (Test.isRunningTest()) { + QueueableWithCalloutRecipes.circuitBreakerThrown = true; + } + } + } +} diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls deleted file mode 100644 index 597a719..0000000 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/gold/classes/BaseProcessor.cls +++ /dev/null @@ -1,3 +0,0 @@ -// STUB — review and update expected output before running eval -public abstract class BaseProcessor { -} diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/prompt.md b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/prompt.md deleted file mode 100644 index 2d1580e..0000000 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-apex-dependencies/prompt.md +++ /dev/null @@ -1 +0,0 @@ -Generate seed-data for an Apex dataset where the gold file is an OrderProcessor class that extends BaseProcessor and implements Queueable. The dataset path is skills/generating-apex/tests/evals/generating-apex-order-processor/. My target org is myDevOrg. \ No newline at end of file diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Adoption__c/Adoption__c.object-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Adoption__c/Adoption__c.object-meta.xml deleted file mode 100644 index c6f0b7c..0000000 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Adoption__c/Adoption__c.object-meta.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - Deployed - - - - Text - - Adoptions - ReadWrite - diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Animal__c/Animal__c.object-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Animal__c/Animal__c.object-meta.xml deleted file mode 100644 index a7c6fb0..0000000 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/gold/objects/Animal__c/Animal__c.object-meta.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - Deployed - - - - Text - - Animals - ReadWrite - diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/prompt.md b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/prompt.md deleted file mode 100644 index f0efb77..0000000 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-flow-custom-objects/prompt.md +++ /dev/null @@ -1 +0,0 @@ -I need seed-data stubs for a Flow dataset. The gold file is a record-triggered Flow on Adoption__c that creates a related record on Animal__c via a Lookup field. Target org is myDevOrg. The dataset is at skills/generating-flow/tests/evals/generating-flow-adoption-trigger/. \ No newline at end of file diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Due_Date__c.field-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Due_Date__c.field-meta.xml index 520b2e8..529519e 100644 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Due_Date__c.field-meta.xml +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Due_Date__c.field-meta.xml @@ -1,4 +1,3 @@ - Payment_Due_Date__c diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Status__c.field-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Status__c.field-meta.xml index b2bc09a..0cc9719 100644 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Status__c.field-meta.xml +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/gold/objects/Contract/fields/Payment_Status__c.field-meta.xml @@ -1,15 +1,22 @@ - Payment_Status__c Picklist + false + false UNPAID + false + + PAID + false + + diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/prompt.md b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/prompt.md index e086abf..0239a01 100644 --- a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/prompt.md +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/prompt.md @@ -1 +1 @@ -Generate seed-data for the dataset at skills/generating-validation-rule/tests/evals/generating-validation-rule-formula-deps/. The gold file is a validation rule on Contract that uses a formula referencing Payment_Due_Date__c and ISPICKVAL(Payment_Status__c, "UNPAID"). My target org is myDevOrg. \ No newline at end of file +Generate seed-data for a CustomFormulaField dataset. The gold file is a formula field on Contract that checks if a payment is overdue — it references Payment_Due_Date__c and ISPICKVAL(Payment_Status__c, "UNPAID"). The dataset path is domains/CustomFormulaField/datasets/payment_overdue/. My target org is myDevOrg. \ No newline at end of file diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/seed-data/objects/Contract/fields/Payment_Overdue__c.field-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/seed-data/objects/Contract/fields/Payment_Overdue__c.field-meta.xml new file mode 100644 index 0000000..0aa951b --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-formula-field/seed-data/objects/Contract/fields/Payment_Overdue__c.field-meta.xml @@ -0,0 +1,21 @@ + + + Payment_Overdue__c + + Text + + BlankAsZero + Returns 'PAYMENT OVERDUE' when Payment_Due_Date__c is before today and Payment_Status__c is UNPAID; otherwise null. + false + false + false + false + false + diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetProvided__c.field-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetProvided__c.field-meta.xml new file mode 100644 index 0000000..1d2ad30 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetProvided__c.field-meta.xml @@ -0,0 +1,8 @@ + + + AssetProvided__c + + Account + AssetProvided + Lookup + diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetServicedBy__c.field-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetServicedBy__c.field-meta.xml new file mode 100644 index 0000000..754ac23 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/gold/objects/Asset/fields/AssetServicedBy__c.field-meta.xml @@ -0,0 +1,8 @@ + + + AssetServicedBy__c + + Account + AssetServicedBy + Lookup + diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/prompt.md b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/prompt.md new file mode 100644 index 0000000..3404461 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/prompt.md @@ -0,0 +1 @@ +Generate seed-data for a ValidationRule dataset. The gold file is a validation rule on Asset that blocks insert/update when AssetProvided Name contains FedEx, AssetServicedBy Owner CompanyName contains FedEx, and Asset was modified within last 3 months. The dataset path is domains/ValidationRule/datasets/AssetFedexValidationRule/. My target org is myDevOrg. \ No newline at end of file diff --git a/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/seed-data/objects/Asset/validationRules/AssetFedexValidation.validationRule-meta.xml b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/seed-data/objects/Asset/validationRules/AssetFedexValidation.validationRule-meta.xml new file mode 100644 index 0000000..96f77a9 --- /dev/null +++ b/skills/generating-eval-seed-data/tests/evals/generating-eval-seed-data-validation-rule/seed-data/objects/Asset/validationRules/AssetFedexValidation.validationRule-meta.xml @@ -0,0 +1,20 @@ + + + AssetFedExValidation + true + Block insert/update if AssetProvided Name contains 'FedEx', AssetServicedBy Owner CompanyName contains 'FedEx', and Asset LastModified is not more than last 3 months + += ADDMONTHS(TODAY(), -3) + )]]> + + Cannot insert/update: Asset conditions not met. +