import { describe, it, expect } from "bun:test"
import { pageContent } from "../../next-templates/page"

describe("Page Generation", () => {
	it("should generate correct page imports", () => {
		// Check for core imports
		expect(pageContent).toContain(
			'import { DynamicWidget } from "@/lib/dynamic"'
		)
		expect(pageContent).toContain('import { useState, useEffect } from "react"')
		expect(pageContent).toContain(
			'import DynamicMethods from "@/app/components/Methods"'
		)
		expect(pageContent).toContain(
			'import { useDarkMode } from "@/lib/useDarkMode"'
		)
		expect(pageContent).toContain('import "./page.css"')
		expect(pageContent).toContain('import Image from "next/image"')
	})

	it("should include proper page structure", () => {
		// Check for page structure
		expect(pageContent).toContain("export default function Main()")
		expect(pageContent).toContain("const { isDarkMode } = useDarkMode()")
		expect(pageContent).toContain(
			"className={`container ${isDarkMode ? 'dark' : 'light'}`}"
		)
	})

	it("should include header section", () => {
		// Check for header section
		expect(pageContent).toContain('<div className="header">')
		expect(pageContent).toContain("<Image")
		expect(pageContent).toContain('className="logo"')
		expect(pageContent).toContain(
			'src={isDarkMode ? "/logo-light.png" : "/logo-dark.png"}'
		)
	})

	it("should include modal section", () => {
		// Check for modal section
		expect(pageContent).toContain('<div className="modal">')
		expect(pageContent).toContain("<DynamicWidget />")
		expect(pageContent).toContain("<DynamicMethods isDarkMode={isDarkMode} />")
	})

	it("should include footer section", () => {
		// Check for footer section
		expect(pageContent).toContain('<div className="footer">')
		expect(pageContent).toContain("Made with 💙 by dynamic")
		expect(pageContent).toContain("<Image")
		expect(pageContent).toContain('className="footer-image"')
		expect(pageContent).toContain(
			'src={isDarkMode ? "/image-dark.png" : "/image-light.png"}'
		)
	})
})
