Skip to content

fix: matched redacted secrets to Airtable editor #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 15, 2025

fix: matched redacted secrets to Airtable editor

11eb15d
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

fix: matched redacted secrets to Airtable editor #15

fix: matched redacted secrets to Airtable editor
11eb15d
Select commit
Loading
Failed to load commit list.
GitHub Actions / JEST Tests succeeded May 15, 2025 in 1s

212 passed, 0 failed and 0 skipped

Tests passed successfully

✅ reports/jest-junit.xml

212 tests were completed in 2s with 212 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
examples/input/index.test.ts 1✅ 263ms
examples/simple/index.test.ts 1✅ 91ms
src/environment/console-aggregator.test.ts 4✅ 59ms
src/environment/sdk/globals/base/field.test.ts 9✅ 78ms
src/environment/sdk/globals/base/index.test.ts 11✅ 103ms
src/environment/sdk/globals/base/record-query-result.test.ts 6✅ 45ms
src/environment/sdk/globals/base/record/record.test.ts 6✅ 64ms
src/environment/sdk/globals/base/record/render-cell-as-string.test.ts 36✅ 387ms
src/environment/sdk/globals/base/table.test.ts 37✅ 532ms
src/environment/sdk/globals/base/view.test.ts 5✅ 78ms
src/environment/sdk/globals/cursor.test.ts 8✅ 46ms
src/environment/sdk/globals/input.test.ts 31✅ 507ms
src/environment/sdk/globals/output.test.ts 6✅ 57ms
src/environment/sdk/globals/session.test.ts 2✅ 43ms
src/environment/sdk/lib/pascal-case.test.ts 7✅ 43ms
src/environment/sdk/lib/uuid.test.ts 4✅ 50ms
test/catch-errors.test.ts 2✅ 51ms
test/cell-format.test.ts 2✅ 68ms
test/console.test.ts 3✅ 145ms
test/fetch.test.ts 3✅ 61ms
test/index.test.ts 3✅ 59ms
test/input.test.ts 11✅ 393ms
test/mutation-types.test.ts 1✅ 46ms
test/mutations.test.ts 9✅ 371ms
test/output.test.ts 2✅ 154ms
test/session.test.ts 2✅ 130ms

✅ examples/input/index.test.ts

Airtable Script Environment input example
  ✅ should select a table and a record

✅ examples/simple/index.test.ts

Airtable Script Environment: Examples: Simple
  ✅ should return a list of record ratings

✅ src/environment/console-aggregator.test.ts

consoleAggregator
  ✅ should log messages
  ✅ should warn messages
  ✅ should error messages
  ✅ should aggregate multiple messages

✅ src/environment/sdk/globals/base/field.test.ts

Field
  ✅ should create a Field instance with correct properties
  ✅ should set description to null if not provided
  ✅ should set options to null if not provided
  ✅ should return true for isComputed if field type is computed
  ✅ should return false for isComputed if field type is not computed
  ✅ should update the description asynchronously
  ✅ should set description to empty string if null is passed
  ✅ should update the options asynchronously
  ✅ should update the name asynchronously

✅ src/environment/sdk/globals/base/index.test.ts

Base SDK test › Properties
  ✅ get the base ID
  ✅ get the base Name
  ✅ gets the active collaborators
  ✅ gets all tables
Base SDK test › Collaborators
  ✅ finds a collaborator by ID
  ✅ finds a collaborator by name
  ✅ finds a collaborator by email
Base SDK test › getTable
  ✅ finds a table by ID
  ✅ finds a table by name
Base SDK test › createTable
  ✅ creates a table
  ✅ throws an error if a field has an invalid type

✅ src/environment/sdk/globals/base/record-query-result.test.ts

RecordQueryResult
  ✅ should return the IDs of all the records
RecordQueryResult › getRecord
  ✅ should return the record with the given id
  ✅ should throw an error if the record does not exist
RecordQueryResult › getRecord › _filterRecordsById
  ✅ should filter out records that do not match the given IDs
  ✅ should remove all records if no matching IDs are provided
  ✅ should keep all records if all IDs match

✅ src/environment/sdk/globals/base/record/record.test.ts

Record
  ✅ should create a record with correct id and name
  ✅ should get cell value by a Field class
  ✅ should get cell value by field id
  ✅ should get cell value by field name
  ✅ should get cell value as string
  ✅ should throw error if field not found

✅ src/environment/sdk/globals/base/record/render-cell-as-string.test.ts

renderCellAsString
  ✅ should render barcode field correctly
  ✅ should render button field correctly
  ✅ should render checkbox field correctly
  ✅ should render multipleRecordLinks field correctly
  ✅ should render createdBy field correctly
  ✅ should render externalSyncSource field correctly
  ✅ should render lastModifiedBy field correctly
  ✅ should return value if field type is not recognized
  ✅ should render multipleAttachments field correctly
  ✅ should render multipleCollaborators field correctly
  ✅ should render multipleLookupValues field correctly
  ✅ should render rollup field correctly
  ✅ should render singleCollaborator field correctly
  ✅ should render singleSelect field correctly
renderCellAsString › createdTime
  ✅ should render createdTime field in date format
  ✅ should render createdTime field in US format with 12 hour time format
renderCellAsString › currency
  ✅ should render currency field with a precision of 4
  ✅ should render currency field with a precision of 0
  ✅ should render value as is if precision is not set
renderCellAsString › date
  ✅ should render date field in US format
  ✅ should render date field in European format
  ✅ should render date field in friendly format
renderCellAsString › dateTime
  ✅ should render dateTime field in US format with 12 hour time format
  ✅ should render dateTime field in US format with 24 hour time format
  ✅ should handle non-UTC timezones
renderCellAsString › duration
  ✅ should render duration with seconds
  ✅ should render duration with minutes
  ✅ should render duration with hours
renderCellAsString › lastModifiedTime
  ✅ should render lastModifiedTime field in date format
  ✅ should render lastModifiedTime field in US format with 12 hour time format
renderCellAsString › number
  ✅ should render number field with a precision of 4
  ✅ should render number field with a precision of 0
  ✅ should render value as is if precision is not set
renderCellAsString › percent
  ✅ should render percent field with a precision of 4
  ✅ should render percent field with a precision of 0
  ✅ should render value as is if precision is not set

✅ src/environment/sdk/globals/base/table.test.ts

Table
  ✅ should create a table with the correct properties
  ✅ should get a field by id or name
  ✅ should throw an error if field is not found
  ✅ should get a view by id or name
  ✅ should throw an error if view is not found
  ✅ should create a new field asynchronously
  ✅ should throw an error if field type is invalid
  ✅ should throw an error if field name already exists
Table › fields
  ✅ should persist changes to field properties
Table › selectRecordsAsync
  ✅ should select all records
  ✅ should select records with specified recordIds
  ✅ should sort records by ascending order
  ✅ should sort records by descending order
  ✅ should throw an error if a sort uses a missing field
  ✅ should throw an error if a sort uses a wrong direction
  ✅ should only include specifically stated fields
  ✅ should return all records if no options are specified
Table › selectRecordAsync
  ✅ should select a single record by ID
  ✅ should return null if the record is not found
  ✅ should only include specifically stated fields
Table › createRecordAsync
  ✅ should create a new record with valid fields
  ✅ should throw an error if a field does not exist
Table › createRecordsAsync
  ✅ should create multiple records with valid fields
  ✅ should throw an error if any field does not exist
Table › updateRecordAsync
  ✅ should update a record with valid fields
  ✅ should throw an error if the record does not exist
  ✅ should throw an error if a field does not exist
  ✅ should update a record using a Record instance
Table › updateRecordsAsync
  ✅ should update multiple records with valid fields
  ✅ should throw an error if any record does not exist
  ✅ should throw an error if any field does not exist
Table › deleteRecordAsync
  ✅ should delete a record by ID
  ✅ should delete a record by Record instance
  ✅ should throw an error if the record does not exist
Table › deleteRecordsAsync
  ✅ should delete multiple records by IDs
  ✅ should delete multiple records by Record instances
  ✅ should throw an error if any record does not exist

✅ src/environment/sdk/globals/base/view.test.ts

View
  ✅ should have the correct properties
View › selectRecordAsync
  ✅ should return null if the record is not found in the view
  ✅ should return the record if it is found in the view
  ✅ should limit fields in results
View › selectRecordsAsync
  ✅ should return only records found in the view

✅ src/environment/sdk/globals/cursor.test.ts

cursor
  ✅ should return null for activeTableId if __defaultCursor and __base are undefined
  ✅ should return null for activeViewId if __defaultCursor and __base are undefined
  ✅ should return tableId from __defaultCursor if defined
  ✅ should return viewId from __defaultCursor if defined
  ✅ should return first table id from __base if __defaultCursor is undefined
  ✅ should return first view id from __base if __defaultCursor is undefined
  ✅ should return null for activeTableId if __base has no tables
  ✅ should return null for activeViewId if __base has no tables

✅ src/environment/sdk/globals/input.test.ts

automationInput › config
  ✅ should return the results of a config callback
  ✅ should throw an error if no config callback is provided
automationInput › secret
  ✅ should return the results of a secret callback
  ✅ should throw an error if no secret callback is provided
extensionInput › textAsync
  ✅ should return the results of a textAsync callback
  ✅ should throw an error if no textAsync callback is provided
extensionInput › buttonsAsync
  ✅ should return the results of a buttonsAsync callback
  ✅ should throw an error if no buttonsAsync callback is provided
extensionInput › tableAsync
  ✅ should return the results of a tableAsync callback
  ✅ should throw an error if no tableAsync callback is provided
extensionInput › viewAsync
  ✅ should return the results of a viewAsync callback
  ✅ should accept a table object in the viewAsync method
  ✅ should throw an error if no viewAsync callback is provided
extensionInput › fieldAsync
  ✅ should return the results of a fieldAsync callback
  ✅ should throw an error if no fieldAsync callback is provided
extensionInput › recordAsync
  ✅ should return a record when given a Table object
  ✅ should return a record when given a View object
  ✅ should return a record when given a RecordQueryResult object
  ✅ should return a record when given an array of records
  ✅ should throw an error if given an invalid source
  ✅ should throw an error if no recordAsync callback is provided
extensionInput › fileAsync
  ✅ should return a text file without any parsed input
  ✅ should throw an error if no fileAsync callback is provided
extensionInput › config
  ✅ should return the results of a config callback
  ✅ should set an item with a Table object
  ✅ should set an item with a View object
  ✅ should set an item with a Field object
  ✅ should set a text item
  ✅ should set a number item
  ✅ should set a select item
  ✅ should throw an error if no config callback is provided

✅ src/environment/sdk/globals/output.test.ts

automationOutput
  ✅ should set key and value
extensionOutput
  ✅ should add text to output
  ✅ should add markdown to output
  ✅ should add table to output
  ✅ should add inspected object to output
  ✅ should clear the output

✅ src/environment/sdk/globals/session.test.ts

session
  ✅ should return null if __currentUser is undefined
  ✅ should return the current user if __currentUser is defined

✅ src/environment/sdk/lib/pascal-case.test.ts

pascalCase
  ✅ should convert a single word to pascal case
  ✅ should convert multiple words to pascal case
  ✅ should handle strings with mixed casing
  ✅ should handle strings with leading and trailing spaces
  ✅ should handle strings with multiple spaces between words
  ✅ should handle empty strings
  ✅ should handle strings with special characters

✅ src/environment/sdk/lib/uuid.test.ts

uuid
  ✅ should generate a UUID of the default length
  ✅ should generate a UUID of the specified length
  ✅ should generate a UUID containing only valid characters
  ✅ should generate unique UUIDs

✅ test/catch-errors.test.ts

Catch errors test
  ✅ sets thrownError to false if none are thrown
  ✅ catches errors thrown in the script

✅ test/cell-format.test.ts

Cell string formatting › date
  ✅ formats a local string with the default date format
  ✅ formats a local string with an overwritten format if the date format is local

✅ test/console.test.ts

Console
  ✅ should collect a console.log
  ✅ should collect a console.error
  ✅ should collect a console.warn

✅ test/fetch.test.ts

Fetch
  ✅ implements a mock fetch
  ✅ implements a mock remoteFetchAsync
  ✅ throws an error if remoteFetchAsync outside an extension script

✅ test/index.test.ts

Load records test
  ✅ base: getTable by name
  ✅ base: getTable by id
  ✅ accepts base objects not nested under a "base" property

✅ test/input.test.ts

Input › automation script
  ✅ passes a configuration object
  ✅ passes a secret value
  ✅ masks a secret value when console.logged
Input › extension script
  ✅ passes a text item
  ✅ passes a buttonsAsync item
  ✅ passes a tableAsync item
  ✅ passes a viewAsync item
  ✅ passes a recordAsync item
  ✅ passes a fieldAsync item
  ✅ passes a fileAsync item
  ✅ passes a configuration object

✅ test/mutation-types.test.ts

Mutation types
  ✅ sets global mutation types

✅ test/mutations.test.ts

Mutations
  ✅ should track creating a new record
  ✅ should track deleting a record
  ✅ should track a change in a single field in a record
  ✅ should track a change in fields in a record
  ✅ should track a new table
  ✅ should track creating a new field
  ✅ should track updating a field name
  ✅ should track updating a field description
  ✅ should track updating a field options

✅ test/output.test.ts

Output
  ✅ passes multiple text outputs
  ✅ records a cleared output as another string

✅ test/session.test.ts

Session test
  ✅ allows getting the session data
  ✅ does not have active session information for automation scripts