1import{e as q,W as K,$ as V,w as Z,r as u,u as X,P as $,a4 as Y,a as ee,j as e,J as F,L as i,D as te,d as ae}from"./index-CY8Nbixe.js";import{l as se}from"./collections-DYnBHD65.js";import{g as D}from"./authors-KZJCM-aM.js";import{e as re}from"./past-the-bottleneck-highlight-DmP7_ugG.js";import{A as k}from"./arrow-right-Brl6OCrp.js";import{C as Q}from"./chevron-right-BKpcdZml.js";import{f as ne,p as le}from"./parseISO-DCkx5Buc.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const B=q("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),c={href:"/ebooks/past-the-bottleneck",image:re,authorSlug:"daniel-mauno-pettersson",title:"Past the Bottleneck â Adopting Agentic Testing in the AI-SDLC",description:"AI is accelerating every part of the SDLC except QA. Past the Bottleneck is the adoption playbook for engineering leaders moving from scripted automation to agentic testing â without breaking what works.",cta:"Get the guide"},P=12,oe="/cms-assets/68d54bbca12e77f6084b9cdc_blog-hero-card.webp";function O(d){try{return ne(le(d),"MMMM d, yyyy")}catch{return d}}function v(d){return d.split("-").filter(Boolean).map(h=>h.charAt(0).toUpperCase()+h.slice(1)).join(" ")}const he=()=>{const[d]=K(),{page:h}=V(),w=Z(),m=se(),C=new Set(["ai-in-software-testing"]),y=u.useMemo(()=>{const t=m.filter(r=>!C.has(r.slug)),a=m.filter(r=>C.has(r.slug));return[...t,...a]},[m]),M=u.useMemo(()=>{const t=new Set;for(const a of m)for(const r of a.categories??[])t.add(r);return[...t].sort((a,r)=>v(a).localeCompare(v(r)))},[m]),A=d.get("category"),x=A&&M.includes(A)?A:"all",b=u.useMemo(()=>x==="all"?y:y.filter(t=>(t.categories??[]).includes(x)),[y,x]),l=Math.max(1,Math.ceil(b.length/P)),f=parseInt(h??d.get("page")??"1",10),s=Number.isFinite(f)?Math.min(Math.max(f,1),l):1,z=t=>{const a=t<=1?"/blog":`/blog/page/${t}`;return x==="all"?a:`${a}?category=${x}`},L=u.useMemo(()=>b.slice((s-1)*P,s*P),[b,s]),T=t=>{const a=t==="all"?"":`?category=${t}`;w(`/blog${a}`,{replace:!0})};u.useEffect(()=>{typeof window<"u"&&s>1&&window.scrollTo({top:0,behavior:"auto"})},[s]),u.useEffect(()=>{f>l&&w("/blog",{replace:!0})},[f,l,w]),X(s>1?{...$.blog,title:`QA.tech Blog â Page ${s} | AI-driven QA Testing Tips`,description:`Page ${s} of the QA.tech blog: practical articles, tips, and updates on AI-driven QA testing for web and mobile applications.`,canonicalPath:`/blog/page/${s}`}:$.blog);const W=[{value:"all",label:"All"},...M.map(t=>({value:t,label:v(t)}))],_=(()=>{const a=[],r=n=>{a.includes(n)||a.push(n)},g=Math.max(1,Math.min(s-2,Math.max(1,l-5+1))),j=Math.min(l,g+5-1);for(let n=g;n<=j;n++)r(n);l>1&&r(l);const N=[];return a.forEach((n,p)=>{p>0&&typeof n=="number"&&typeof a[p-1]=="number"&&n-a[p-1]>1&&N.push("â¦"),N.push(n)}),N})(),G=Y("QA.tech blog",m.map(t=>({name:t.title,path:`/blog/${t.slug}`}))),J=ee([{name:"Home",path:"/"},{name:"Blog",path:"/blog"}]);return e.jsxs("div",{className:"bg-[#FAFAFA]",children:[e.jsx(F,{id:"ld-blog-collection",data:G}),e.jsx(F,{id:"ld-blog-breadcrumb",data:J}),e.jsx("section",{className:"relative isolate overflow-hidden",children:e.jsxs("div",{className:"mx-auto max-w-5xl px-6 pt-16 pb-12 sm:pt-24 lg:px-10",children:[e.jsx("p",{className:"font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-500",children:"QA.tech blog"}),e.jsxs("h1",{className:"mt-4 text-4xl font-medium tracking-tight text-neutral-900 sm:text-6xl",children:["Field notes from teams shipping",e.jsx("br",{}),e.jsx("span",{className:"text-neutral-500",children:"at AI speed."})]}),e.jsx("p",{className:"mt-6 max-w-3xl text-base font-light text-neutral-600 sm:text-lg",children:"Engineering deep-dives, QA strategy, and product updates â written by the people building agentic testing for modern release pipelines."})]})}),(()=>{const t=D(c.authorSlug);return e.jsx("section",{className:"mx-auto max-w-5xl rounded-t-[4px] border-x border-t border-zinc-200 bg-[#FAFAFA]","aria-labelledby":"featured-blog-heading",children:e.jsxs("article",{className:"grid grid-cols-1 md:grid-cols-2 md:divide-x md:divide-zinc-200",children:[e.jsx(i,{to:c.href,className:"group relative block aspect-[4/3] overflow-hidden bg-neutral-100 md:aspect-auto md:min-
6h-[360px]",children:e.jsx("img",{src:c.image,alt:"",className:"h-full w-full object-cover object-center transition-transform duration-500 ease-out group-hover:scale-[1.02]"})}),e.jsxs("div",{className:"flex flex-col justify-center p-8 sm:p-10 lg:p-12",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[t.avatar?e.jsx("img",{src:t.avatar,alt:"",className:"h-12 w-12 rounded-full object-cover",loading:"lazy",decoding:"async"}):e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-neutral-900 font-mono text-[11px] font-medium uppercase tracking-wider text-white",children:t.name==="QA.tech"?"QA":t.name.charAt(0)}),e.jsx("span",{className:"text-sm text-neutral-700",children:t.name})]}),e.jsx("h2",{id:"featured-blog-heading",className:"mt-5 text-2xl font-medium tracking-tight text-neutral-900 sm:text-3xl",children:e.jsx(i,{to:c.href,className:"transition-colors hover:text-neutral-700",children:c.title})}),e.jsx("p",{className:"mt-3 text-sm font-light leading-6 text-neutral-600 sm:text-base",children:c.description}),e.jsx("div",{className:"mt-7",children:e.jsxs(i,{to:c.href,className:"inline-flex items-center gap-2 rounded-full bg-neutral-900 px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-zinc-700",children:[c.cta,e.jsx(k,{className:"size-3.5"})]})})]})]})})})(),e.jsxs("section",{className:"mx-auto max-w-5xl border-x border-t border-zinc-200 bg-[#FAFAFA]","aria-labelledby":"all-posts-heading",children:[e.jsx("div",{className:"px-6 py-5 lg:px-10",children:e.jsx("nav",{"aria-label":"Filter posts by category",children:e.jsx("ul",{className:"flex flex-wrap items-center gap-1.5",children:W.map(t=>{const a=x===t.value;return e.jsx("li",{children:e.jsx("button",{type:"button",onClick:()=>T(t.value),"aria-pressed":a,className:["rounded-full border px-3 py-1.5 font-mono text-[11px] uppercase tracking-[0.18em] transition-colors",a?"border-neutral-900 bg-neutral-900 text-white":"border-zinc-200 bg-white text-neutral-600 hover:border-neutral-400 hover:text-neutral-900"].join(" "),children:t.label})},t.value)})})})}),b.length===0?e.jsx("p",{className:"px-6 py-16 text-sm text-neutral-600 lg:px-10",children:"No posts in this category yet."}):e.jsx("ul",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",children:L.map((t,a)=>{const r=L.length,g=a%3,j=Math.ceil(r/3),n=Math.floor(a/3)===j-1,p=r-(j-1)*3,E=n&&g<2&&g===p-1,R=a%2,I=Math.ceil(r/2),S=Math.floor(a/2)===I-1,U=r-(I-1)*2,H=S&&R===0&&U===1;return e.jsx("li",{className:["relative",R===1?"sm:border-l sm:border-zinc-200":"",H?"sm:border-r sm:border-zinc-200":"",S?"":"sm:border-b sm:border-zinc-200","lg:border-l-0",E?"":"lg:!border-r-0",g!==0?"lg:!border-l lg:border-zinc-200":"",E?"lg:!border-r lg:border-zinc-200":"",n?"lg:!border-b-0":"lg:!border-b lg:border-zinc-200",a!==r-1?"border-b border-zinc-200":""].filter(Boolean).join(" "),children:e.jsxs(i,{to:`/blog/${t.slug}`,className:"group flex h-full flex-col p-6 transition-colors hover:bg-neutral-900/[0.03] sm:p-8",children:[e.jsx("div",{className:"relative aspect-[1200/628] overflow-hidden rounded-[4px] bg-neutral-100 ring-1 ring-inset ring-zinc-200",children:e.jsx("img",{src:t.coverImage||oe,alt:"",className:`h-full w-full ${t.coverImage?"object-contain":"object-cover"} object-center transition-transform duration-500 ease-out group-hover:scale-[1.03]`})}),(()=>{const o=D(t.author);return e.jsxs("div",{className:"mt-5 flex items-center gap-2.5",children:[o.avatar?e.jsx("img",{src:o.avatar,alt:"",className:"h-12 w-12 rounded-full object-cover",loading:"lazy",decoding:"async"}):e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-neutral-900 font-mono text-[11px] font-medium uppercase tracking-wider text-white",children:o.name==="QA.tech"?"QA":o.name.charAt(0)}),e.jsx("span",{className:"text-sm text-neutral-700",children:o.name})]})})(),t.categories&&t.categories.length>0?e.jsx("ul",{className:"mt-4 flex flex-wrap gap-1.5",children:t.categories.map(o=>e.jsx("li",{className:"inline-flex items-center rounded-full bg-white px-2.5 py-0.5 font-mono text-[10px] uppercase tracking-[0.16em] text-neutral-600 ring-1 ring-inset ring-zinc-200",children:v(o
6)},o))}):null,e.jsx("time",{className:`font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-500 ${t.categories&&t.categories.length>0?"mt-2":"mt-4"}`,dateTime:t.updated||t.date,children:t.updated?`Updated ${O(t.updated)}`:O(t.date)}),e.jsx("h3",{className:"mt-2 text-lg font-medium leading-snug tracking-tight text-neutral-900 sm:text-xl",children:t.title}),t.description?e.jsx("p",{className:"mt-3 line-clamp-3 flex-1 text-sm font-light leading-6 text-neutral-600",children:t.description}):null,e.jsxs("span",{className:"mt-5 inline-flex items-center gap-1 text-sm font-normal text-neutral-900",children:[e.jsx("span",{className:"underline-offset-4 group-hover:underline",children:"Read more"}),e.jsx(k,{className:"size-3.5"})]})]})},t.slug)})}),l>1?e.jsxs("nav",{"aria-label":"Pagination",className:"flex items-center justify-between gap-4 border-t border-zinc-200 px-6 py-6 lg:px-10",children:[s>1?e.jsxs(i,{to:z(s-1),rel:"prev",className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-4 py-2 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-700 transition-colors hover:border-neutral-400 hover:text-neutral-900",children:[e.jsx(B,{className:"size-3.5"}),"Previous"]}):e.jsxs("span",{"aria-hidden":"true",className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-4 py-2 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-700 opacity-40",children:[e.jsx(B,{className:"size-3.5"}),"Previous"]}),e.jsx("ul",{className:"flex items-center gap-1",children:_.map((t,a)=>t==="â¦"?e.jsx("li",{className:"px-2 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-400",children:"â¦"},`e-${a}`):e.jsx("li",{children:e.jsx(i,{to:z(t),"aria-current":t===s?"page":void 0,"aria-label":`Page ${t}`,className:["inline-flex min-w-9 justify-center rounded-full border px-3 py-1.5 font-mono text-[11px] uppercase tracking-[0.18em] transition-colors",t===s?"border-neutral-900 bg-neutral-900 text-white":"border-zinc-200 bg-white text-neutral-700 hover:border-neutral-400 hover:text-neutral-900"].join(" "),children:t})},t))}),s<l?e.jsxs(i,{to:z(s+1),rel:"next",className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-4 py-2 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-700 transition-colors hover:border-neutral-400 hover:text-neutral-900",children:["Next",e.jsx(Q,{className:"size-3.5"})]}):e.jsxs("span",{"aria-hidden":"true",className:"inline-flex items-center gap-1.5 rounded-full border border-zinc-200 bg-white px-4 py-2 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-700 opacity-40",children:["Next",e.jsx(Q,{className:"size-3.5"})]})]}):null]}),e.jsx("div",{className:"mx-auto max-w-5xl border-x border-t border-zinc-200 bg-white px-6 py-6 text-center lg:px-10",children:e.jsxs(i,{to:"/blog/archive",className:"inline-flex items-center gap-1.5 font-mono text-[11px] uppercase tracking-[0.18em] text-neutral-700 transition-colors hover:text-neutral-900",children:["Browse all ",m.length," articles",e.jsx(k,{className:"size-3.5"})]})}),e.jsx("div",{className:"mx-auto max-w-5xl border-x border-zinc-200",children:e.jsx(te,{})}),e.jsx(ae,{})]})};export{he as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.