diff --git a/packages/plugin-adapter-sitemap/test/cases/build.default/build.default.spec.js b/packages/plugin-adapter-sitemap/test/cases/build.default/build.default.spec.js index 1a592dad1..3c14d2835 100644 --- a/packages/plugin-adapter-sitemap/test/cases/build.default/build.default.spec.js +++ b/packages/plugin-adapter-sitemap/test/cases/build.default/build.default.spec.js @@ -79,11 +79,11 @@ describe('Build Greenwood With: ', function() { }); - // after(function() { - // runner.teardown([ - // path.join(outputPath, '.vercel'), - // ...getOutputTeardownFiles(outputPath) - // ]); - // }); + after(function() { + runner.stopCommand(); + runner.teardown([ + path.join(outputPath, '.greenwood') + ]); + }); }); \ No newline at end of file diff --git a/packages/plugin-adapter-sitemap/test/cases/develop.default/develop.default.spec.js b/packages/plugin-adapter-sitemap/test/cases/develop.default/develop.default.spec.js new file mode 100644 index 000000000..ee01ba63b --- /dev/null +++ b/packages/plugin-adapter-sitemap/test/cases/develop.default/develop.default.spec.js @@ -0,0 +1,73 @@ + +import path from 'path'; +import { Runner } from 'gallinago'; +import { fileURLToPath } from 'url'; + +import chai from 'chai'; +const expect = chai.expect; + +describe('Develop Sitemap With: ', function() { + + const LABEL = 'Sitemap Resource plugin output'; + + const cliPath = path.join(process.cwd(), 'packages/cli/src/index.js'); + const outputPath = fileURLToPath(new URL('.', import.meta.url)); + const hostname = 'http://localhost'; + const port = 1984; + let runner; + + before(function() { + this.context = { + hostname: `${hostname}:${port}` + }; + runner = new Runner(); + }); + + describe(LABEL, function() { + + before(async function() { + runner.setup(outputPath); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(); + }, 5000); + + runner.runCommand(cliPath, 'develop', { async: true }); + }); + }); + + describe('Sitemap.xml', function() { + let response = {}; + let text; + + before(async function() { + response = await fetch(`${hostname}:${port}/sitemap.xml`); + text = await response.text(); + }); + + it('should return a 200', function() { + expect(response.status).to.equal(200); + }); + + it('should return the correct content type', function() { + expect(response.headers.get('content-type')).to.equal('text/xml'); + }); + + it('should contain loc element', function() { + const regex = /(http:\/\/www\.example\.com\/about\/)<\/loc>/; + const match = text.match(regex); + + expect(match[1]).to.equal('http://www.example.com/about/'); + + }); + }); + }); + + after(function() { + runner.stopCommand(); + runner.teardown([ + path.join(outputPath, '.greenwood') + ]); + }); +}); \ No newline at end of file diff --git a/packages/plugin-adapter-sitemap/test/cases/develop.default/greenwood.config.js b/packages/plugin-adapter-sitemap/test/cases/develop.default/greenwood.config.js new file mode 100644 index 000000000..1537f1e2d --- /dev/null +++ b/packages/plugin-adapter-sitemap/test/cases/develop.default/greenwood.config.js @@ -0,0 +1,9 @@ + +import { greenwoodPluginAdapterSitemap, greenwoodPluginResourceSitemap } from '../../../src/index.js'; + +export default { + plugins: [ + greenwoodPluginAdapterSitemap(), + greenwoodPluginResourceSitemap + ] +}; \ No newline at end of file diff --git a/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/about.md b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/about.md new file mode 100644 index 000000000..4093eb641 --- /dev/null +++ b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/about.md @@ -0,0 +1,3 @@ +# About Us + +Lorem ipsum. \ No newline at end of file diff --git a/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/index.md b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/index.md new file mode 100644 index 000000000..46c5f357e --- /dev/null +++ b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/pages/index.md @@ -0,0 +1,3 @@ +## Home Page + +Welcome! \ No newline at end of file diff --git a/packages/plugin-adapter-sitemap/test/cases/develop.default/src/sitemap.xml.js b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/sitemap.xml.js new file mode 100644 index 000000000..d6b779b4d --- /dev/null +++ b/packages/plugin-adapter-sitemap/test/cases/develop.default/src/sitemap.xml.js @@ -0,0 +1,17 @@ +async function generateSitemap(compilation){ + const urls = compilation.graph.map((page) => { + return ` + http://www.example.com${page.route} + `; + }); + return ` + + +${urls.join('\n')} + + `; + } + + + + export { generateSitemap }; \ No newline at end of file