• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prebid / Prebid.js / #298

29 May 2025 11:21AM UTC coverage: 82.464% (-7.7%) from 90.144%
#298

push

travis-ci

prebidjs-release
Prebid 9.45.0 release

12606 of 17518 branches covered (71.96%)

18622 of 22582 relevant lines covered (82.46%)

157.38 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.71
/modules/fpdModule/index.js
1
/**
1✔
2
 * This module sets default values and validates ortb2 first part data
3
 * @module modules/firstPartyData
4
 */
5
import { config } from '../../src/config.js';
6
import { module, getHook } from '../../src/hook.js';
7
import {logError} from '../../src/utils.js';
8
import {PbPromise} from '../../src/utils/promise.js';
9
import {timedAuctionHook} from '../../src/utils/perfMetrics.js';
10

11
let submodules = [];
1✔
12

13
export function registerSubmodules(submodule) {
14
  submodules.push(submodule);
2✔
15
}
16

17
export function reset() {
18
  submodules.length = 0;
×
19
}
20

21
export function processFpd({global = {}, bidder = {}} = {}) {
×
22
  let modConf = config.getConfig('firstPartyData') || {};
77✔
23
  let result = PbPromise.resolve({global, bidder});
77✔
24
  submodules.sort((a, b) => {
77✔
25
    return ((a.queue || 1) - (b.queue || 1));
77!
26
  }).forEach(submodule => {
27
    result = result.then(
154✔
28
      ({global, bidder}) => PbPromise.resolve(submodule.processFpd(modConf, {global, bidder}))
154✔
29
        .catch((err) => {
30
          logError(`Error in FPD module ${submodule.name}`, err);
×
31
          return {};
×
32
        })
33
        .then((result) => ({global: result.global || global, bidder: result.bidder || bidder}))
154!
34
    );
35
  });
36
  return result;
77✔
37
}
38

39
export const startAuctionHook = timedAuctionHook('fpd', function startAuctionHook(fn, req) {
1✔
40
  processFpd(req.ortb2Fragments).then((ortb2Fragments) => {
77✔
41
    Object.assign(req.ortb2Fragments, ortb2Fragments);
77✔
42
    fn.call(this, req);
77✔
43
  })
44
});
45

46
function setupHook() {
47
  getHook('startAuction').before(startAuctionHook, 10);
1✔
48
}
49

50
module('firstPartyData', registerSubmodules);
1✔
51

52
// Runs setupHook on initial load
53
setupHook();
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc