testLoadingDepsInNonBatchMode1() {
    const mm =
        getModuleManager({'i': [], 'j': [], 'k': ['j'], 'l': ['i', 'j', 'k']});
    mm.setLoader(createSuccessfulNonBatchLoader(mm));

    mm.preloadModule('j');
    clock.tick(5);
    assertTrue('module "j" should be loaded', mm.isModuleLoaded('j'));
    assertFalse('module "i" should not be loaded (1)', mm.isModuleLoaded('i'));
    assertFalse('module "k" should not be loaded (1)', mm.isModuleLoaded('k'));
    assertFalse('module "l" should not be loaded (1)', mm.isModuleLoaded('l'));

    // When loading a module in non-batch mode, its dependencies should be
    // requested independently, and in dependency order.
    mm.preloadModule('l');
    clock.tick(5);
    assertTrue('module "i" should be loaded', mm.isModuleLoaded('i'));
    assertFalse('module "k" should not be loaded (2)', mm.isModuleLoaded('k'));
    assertFalse('module "l" should not be loaded (2)', mm.isModuleLoaded('l'));
    clock.tick(5);
    assertTrue('module "k" should be loaded', mm.isModuleLoaded('k'));
    assertFalse('module "l" should not be loaded (3)', mm.isModuleLoaded('l'));
    clock.tick(5);
    assertTrue('module "l" should be loaded', mm.isModuleLoaded('l'));
  }
Test loading dependencies transitively.
@suppress {missingProperties} suppression added to enable type checking