@@ -6575,6 +6575,79 @@ describe('OpenAPI formula (e2e)', () => {
65756575 expect ( olderRecord . data . fields [ formulaField . name ] ) . toEqual ( 'Older' ) ;
65766576 } ) ;
65776577
6578+ it ( 'should evaluate formula referencing created time on record create' , async ( ) => {
6579+ const createdTimeField = await createField ( table . id , {
6580+ name : 'Created time' ,
6581+ type : FieldType . CreatedTime ,
6582+ } ) ;
6583+
6584+ const formulaField = await createField ( table . id , {
6585+ name : 'Created age (days)' ,
6586+ type : FieldType . Formula ,
6587+ options : {
6588+ expression : `DATETIME_DIFF(NOW(), {${ createdTimeField . id } }, "day")` ,
6589+ timeZone : 'UTC' ,
6590+ } ,
6591+ } ) ;
6592+
6593+ const created = await createRecords ( table . id , {
6594+ fieldKeyType : FieldKeyType . Id ,
6595+ records : [ { fields : { } } ] ,
6596+ } ) ;
6597+
6598+ const record = await getRecord ( table . id , created . records [ 0 ] . id ) ;
6599+ expect ( record . data . fields [ formulaField . name ] ) . toEqual ( 0 ) ;
6600+ } ) ;
6601+
6602+ it ( 'should evaluate formula referencing created by on record create' , async ( ) => {
6603+ const createdByField = await createField ( table . id , {
6604+ name : 'Created by' ,
6605+ type : FieldType . CreatedBy ,
6606+ } ) ;
6607+
6608+ const formulaField = await createField ( table . id , {
6609+ name : 'Creator Name' ,
6610+ type : FieldType . Formula ,
6611+ options : {
6612+ expression : `{${ createdByField . id } }` ,
6613+ } ,
6614+ } ) ;
6615+
6616+ const created = await createRecords ( table . id , {
6617+ fieldKeyType : FieldKeyType . Id ,
6618+ records : [ { fields : { } } ] ,
6619+ } ) ;
6620+
6621+ const record = await getRecord ( table . id , created . records [ 0 ] . id ) ;
6622+ const createdByValue = record . data . fields [ createdByField . name ] as { title ?: string } | null ;
6623+ expect ( createdByValue ?. title ) . toBeTruthy ( ) ;
6624+ expect ( record . data . fields [ formulaField . name ] ) . toEqual ( createdByValue ?. title ) ;
6625+ } ) ;
6626+
6627+ it ( 'should evaluate formula referencing auto number on record create' , async ( ) => {
6628+ const autoNumberField = await createField ( table . id , {
6629+ name : 'Auto number' ,
6630+ type : FieldType . AutoNumber ,
6631+ } ) ;
6632+
6633+ const formulaField = await createField ( table . id , {
6634+ name : 'Auto number x2' ,
6635+ type : FieldType . Formula ,
6636+ options : {
6637+ expression : `{${ autoNumberField . id } } * 2` ,
6638+ } ,
6639+ } ) ;
6640+
6641+ const created = await createRecords ( table . id , {
6642+ fieldKeyType : FieldKeyType . Id ,
6643+ records : [ { fields : { } } ] ,
6644+ } ) ;
6645+
6646+ const record = await getRecord ( table . id , created . records [ 0 ] . id ) ;
6647+ const autoNumberValue = record . data . fields [ autoNumberField . name ] as number ;
6648+ expect ( record . data . fields [ formulaField . name ] ) . toEqual ( autoNumberValue * 2 ) ;
6649+ } ) ;
6650+
65786651 it ( 'should evaluate timezone-aware formatting formulas referencing fields' , async ( ) => {
65796652 const dateField = await createField ( table . id , {
65806653 name : 'tz source' ,
0 commit comments