create-dynamic-app
Version:
CLI tool to generate sample applications using Dynamic's web3 authentication
58 lines (52 loc) • 2.03 kB
text/typescript
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"}'
)
})
})