Skip to content
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

Generate Bid ID Test Hardening #3491

Merged
merged 5 commits into from
Mar 5, 2024

Conversation

SyntaxNode
Copy link
Contributor

I found no issue with GenerateBidID. Sharing the local changes I made to be sure this feature is working properly.

@SyntaxNode SyntaxNode changed the title Generate Bid Test Hardening Generate Bid ID Test Hardening Feb 13, 2024
@@ -104,7 +104,7 @@ type bidResponseWrapper struct {
}

type BidIDGenerator interface {
New() (string, error)
New(bidder string) (string, error)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a bidder name as input to the generator for deterministic results during test. May be useful if hosts want to add per-bidder logic.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I'm skeptical about modifying non-test code to enhance tests. It's probably ok in this case.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with you. I need some way in these tests to get around the random ordering of bidders to fit into the json test framework. I could pull this out into a separate unit test and not need to make this change. I also feel it's probably ok in this case since this isn't a literal "if test, do this" code block and there are potential use cases where an bid generator might want to generate bidder specific ids.

for bidder, seatBid := range adapterBids {
for i := range seatBid.Bids {
if bidID, err := e.bidIDGenerator.New(bidder.String()); err == nil {
seatBid.Bids[i].GeneratedBidID = bidID
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to referencing the slice via index instead of an accessor, but this is not a loop bug since the accessor is a pointer.

Copy link
Contributor

@AlexBVolcy AlexBVolcy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, left one small comment

}

func (big *mockBidIDGenerator) Enabled() bool {
return big.GenerateBidID
func (m *fakeBidIDGenerator) Enabled() bool {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this variable name be f? I would assume m would be if the generator was still called mock.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. Change made.

@SyntaxNode SyntaxNode merged commit 05a1293 into prebid:master Mar 5, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants