hunk.code_window:           },
             (err) => {
               results.push(err);
               // Since the consuming code can no longer interfere with the synchronous
               // producer, the remaining results are nexted.
               expect(results).to.deep.equal([1, 2, 3, 4, expected]);
             }
           );
       });
  
hunk.labels: keep keep keep replace replace replace keep keep keep keep
hunk.after_edit:             // The error should unsubscribe from the source, meaning we 
               // should not see the number 4.
               expect(results).to.deep.equal([1, 2, 3, expected]);
  
hunk.file_path: spec/Observable-spec.ts
hunk.type: replace
file: /**
   * @dgProcessor renderLinkInfo
   * @description For each doc that has one of the specified docTypes,
   * add HTML comments that describe the links to and from the doc.
   */
  module.exports = function renderLinkInfo(extractLinks) {
    return {
      docTypes: [],
      $runBefore: ['convertToJsonProcessor'],
      $runAfter: ['fixInternalDocumentLinks'],
      $process(docs) {
        const toLinks = {};
        const fromLinks = {};
        const docsToCheck = docs.filter(doc => this.docTypes.indexOf(doc.docType) !==  -1);
  
        // Extract and store all links found in each doc in hashes
        docsToCheck.forEach(doc => {
          const linksFromDoc = extractLinks(doc.renderedContent).hrefs;
          // Update the hashes
          fromLinks[doc.path] = linksFromDoc;
          linksFromDoc.forEach(linkPath => {
            linkPath = linkPath.match(/^[^#?]+/)[0]; // remove the query and hash from the link
            (toLinks[linkPath] = toLinks[linkPath] || []).push(doc.path);
          });
        });
  
        // Add HTML comments to the end of the rendered content that list the links found above
        docsToCheck.forEach(doc => {
          const linksFromDoc = getLinks(fromLinks, doc.path);
          const linksToDoc = getLinks(toLinks, doc.path);
          doc.renderedContent +=
          `\n<!-- links to this doc:${linksToDoc.map(link => `\n - ${link}`).join('')}\n-->\n` +
          `<!-- links from this doc:${linksFromDoc.map(link => `\n - ${link}`).join('')}\n-->`;
        });
      }
    };
  };
  
  function getLinks(hash, docPath) {
    const links = (hash[docPath] || []).filter(link => link !== docPath);
    const internal = {};
    const external = {};
    links.forEach(link => {
      if (/^[^:/#?]+:/.test(link)) {
        external[link] = true;
      } else {
        internal[link] = true;
      }
    });
    return Object.keys(internal).sort()
      .concat(Object.keys(external).sort());
  }
  