test(source-granola): add acceptance-test-config and fix configured catalog - #84276
test(source-granola): add acceptance-test-config and fix configured catalog#84276devin-ai-integration[bot] wants to merge 3 commits into
Conversation
Co-Authored-By: bot_apk <apk@cognition.ai>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksPR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful Resources
|
|
Note Autopilot progressive rollouts are not enabled for the following modified connector(s):
This is a courtesy heads-up only — it does not block merge or fail any check. |
|
Co-Authored-By: bot_apk <apk@cognition.ai>
|
Deploy preview for airbyte-docs ready!
Deployed with vercel-action |
Co-Authored-By: bot_apk <apk@cognition.ai>
What
source-granolahas noacceptance-test-config.yml, so the CDK standard-test harness loads zero scenarios and silently skipscheck,discover,basic_readandfail_read_with_bad_catalog(plus the docker variants) while the suite still exits 0. The connector's read path has never been exercised by CI.This PR adds the missing config and corrects the configured catalog. No manifest or connector behavior changes.
Resolves https://github.com/airbytehq/airbyte-internal-issues/issues/16924:
Part of the
source-granolacertification epic https://github.com/airbytehq/airbyte-internal-issues/issues/16923 (criterion R-1).How
airbyte_cdk/test/standard_tests/docker_base.py::get_scenarioscatches the missing-file error, emits aUserWarning, and returns[]; every scenario-parameterized test then reportsSKIPPED[NOTSET]. Scenarios are collected only from thespec,connectionandbasic_readsections' entries that carry aconfig_path.acceptance-test-config.yml—spec(spec_path: manifest.yaml, the manifest-only convention),connectionsucceed onsecrets/config.json+ fail on a newintegration_tests/invalid_config.json,discovery,basic_readover both streams withempty_streams: [],incrementalwith a future state, andfull_refresh.integration_tests/configured_catalog.json— thenotescursor was declared asupdated_at, which is neither the manifest'sDatetimeBasedCursor.cursor_field(created_at) nor a property of the stream's inline schema; corrected tocreated_at.detailed_noteswas missing entirely and is added as full refresh / overwrite.integration_tests/invalid_config.jsonandintegration_tests/abnormal_state.json.Coordination: the epic's incremental sub-issue (https://github.com/airbytehq/airbyte-internal-issues/issues/16931) will switch the
notescursor toupdated_at. This PR deliberately makes the catalog match the current manifest state (created_at); that sub-issue should update the catalog alongside the manifest.Review guide
acceptance-test-config.ymlintegration_tests/configured_catalog.jsonTest Coverage
This PR is the test coverage — it turns 6 silently-skipped standard tests into executed ones. No unit/mock-server test is added because nothing in the connector's runtime behavior changes.
The
UserWarning: Acceptance test config file not found ... No scenarios will be loaded.and theSKIPPED[NOTSET]pattern are both gone, so the config is now being picked up and the scenarios are parameterized. All 5 failures are the credentialed scenarios failing on an absentsecrets/config.json.metadata.yamldeclaresSECRET_SOURCE-GRANOLA__CREDSin theairbyte-connector-testing-secret-storeGSM store, but that secret does not appear to exist. UsingGCP_GSM_CREDENTIALS, listing metadata indataline-integration-testingsucceeded (690 secrets visible, so this is not a permissions failure) and no secret name or label matchedGRANOLA; the direct lookup ofprojects/dataline-integration-testing/secrets/SECRET_SOURCE-GRANOLA__CREDSreturnedNOT_FOUND.Action needed from a maintainer with GSM access: provision
SECRET_SOURCE-GRANOLA__CREDSwith a working Granola API key. Per the evidence in the issue, setstart_dateto2025-01-01(142 notes on the test account) rather than a recent date — there are only 2 notes since 2026-07-01, which would makebasic_read/incrementalfragile. Until that secret exists, the credentialed acceptance tests will fail in CI as well.Versioning
dockerImageTag→ 0.2.13 (patch), with a matching changelog entry indocs/integrations/sources/granola.md. (Originally 0.2.12; rebumped after #84278 landed 0.2.12 on master.)I initially left the version alone, reasoning that none of the changed files ship in the connector image. CI disagreed — the
source-granola Pre-Release Checksjob failed the Connector Version Increment Check — so the bump follows the repo's enforced convention.enableProgressiveRolloutisfalsefor this connector, so no-rc.xsuffix; manifest-only, so there is nopyproject.tomlversion to keep in sync.Declarative-First Evaluation
No custom Python component is introduced or needed — the change is entirely YAML acceptance-test config plus JSON test fixtures, and the manifest is untouched.
Breaking Change Evaluation
Not breaking. No schema, primary key, cursor, spec, stream, or state-format change; the only shipped-artifact change is the version bump itself.
User Impact
None behaviorally — the connector's runtime is unchanged. Users see a new 0.2.12 release whose only content is test coverage.
Can this PR be safely reverted and rolled back?
Link to Devin session: https://app.devin.ai/sessions/3a620b0a0b4c48378a75d52405a6dae9