TestUpsertAISeats verifies 'UpsertAISeatState' only returns true when a new row is inserted.
(t *testing.T)
| 11430 | // TestUpsertAISeats verifies 'UpsertAISeatState' only returns true when a new |
| 11431 | // row is inserted. |
| 11432 | func TestUpsertAISeats(t *testing.T) { |
| 11433 | t.Parallel() |
| 11434 | |
| 11435 | sqlDB := testSQLDB(t) |
| 11436 | err := migrations.Up(sqlDB) |
| 11437 | require.NoError(t, err) |
| 11438 | db := database.New(sqlDB) |
| 11439 | ctx := testutil.Context(t, testutil.WaitShort) |
| 11440 | |
| 11441 | now := dbtime.Now() |
| 11442 | |
| 11443 | user := dbgen.User(t, db, database.User{}) |
| 11444 | newRow, err := db.UpsertAISeatState(ctx, database.UpsertAISeatStateParams{ |
| 11445 | UserID: user.ID, |
| 11446 | FirstUsedAt: now.Add(time.Hour * -24), |
| 11447 | LastEventType: database.AiSeatUsageReasonTask, |
| 11448 | }) |
| 11449 | require.NoError(t, err) |
| 11450 | require.True(t, newRow) |
| 11451 | |
| 11452 | alreadyExists, err := db.UpsertAISeatState(ctx, database.UpsertAISeatStateParams{ |
| 11453 | UserID: user.ID, |
| 11454 | FirstUsedAt: now.Add(time.Hour * -23), |
| 11455 | LastEventType: database.AiSeatUsageReasonTask, |
| 11456 | }) |
| 11457 | require.NoError(t, err) |
| 11458 | require.False(t, alreadyExists) |
| 11459 | |
| 11460 | alreadyExists, err = db.UpsertAISeatState(ctx, database.UpsertAISeatStateParams{ |
| 11461 | UserID: user.ID, |
| 11462 | FirstUsedAt: now, |
| 11463 | LastEventType: database.AiSeatUsageReasonTask, |
| 11464 | }) |
| 11465 | require.NoError(t, err) |
| 11466 | require.False(t, alreadyExists) |
| 11467 | } |
| 11468 | |
| 11469 | func TestGetPRInsights(t *testing.T) { |
| 11470 | t.Parallel() |