import http from 'k6/http';
import { check } from 'k6';

export let options = {
  vus: 16, // number of virtual users
  duration: '30s', // test duration
};
export default function () {
  let environment = "http://localhost:5275";
  let username = "admin";
  let password = "admin";
  // Step 1: login, disable redirect following
  let loginRes = http.post(
    environment + '/Home/Login',
    { Username: username, Password: password },
    { redirects: 0 }
  );

  // Step 2: extract the auth cookie manually
  const setCookieHeader = loginRes.headers['Set-Cookie'];

  // Use a regex to extract the cookie value
  const match = setCookieHeader.match(/\.AspNetCore\.Cookies=([^;]+)/);
  const authCookie = match ? match[1] : null;

  if (!authCookie) {
    throw new Error('Login failed: no auth cookie found');
  }

  // Step 3: use it on a protected page
  const headers = { Cookie: `.AspNetCore.Cookies=${authCookie}` };
  const res = http.get(environment + '/Home/Assets', { headers });

  check(res, {
    'authorized request succeeded': (r) => r.status === 200,
  });
}
