Files
.github
.storybook
__mocks__
cypress
fixtures
integration
plugins
snapshots
support
utils
README.md
config.js
constants.js
dismiss-local-backup.js
mock-server.js
regexp.js
steps.js
Readme.md
run.mjs
dev-test
functions
img
packages
scripts
website
.all-contributorsrc
.editorconfig
.eslintrc.js
.gitattributes
.gitignore
.nvmrc
.prettierignore
.prettierrc
.stylelintrc
.vale.ini
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
babel.config.js
cms.png
commitlint.config.js
cypress.json
jest.config.js
lerna.json
netlify.toml
package.json
renovate.json
setupTestFramework.js
tsconfig.json
yarn.lock
static-cms/cypress/utils/config.js
2021-01-04 17:44:36 +02:00

43 lines
1.3 KiB
JavaScript

const fs = require('fs-extra');
const path = require('path');
const yaml = require('js-yaml');
const devTestDirectory = path.join(__dirname, '..', '..', 'dev-test');
const backendsDirectory = path.join(devTestDirectory, 'backends');
async function copyBackendFiles(backend) {
await Promise.all(
['config.yml', 'index.html'].map(file => {
return fs.copyFile(
path.join(backendsDirectory, backend, file),
path.join(devTestDirectory, file),
);
}),
);
}
async function updateConfig(configModifier) {
const configFile = path.join(devTestDirectory, 'config.yml');
const configContent = await fs.readFile(configFile);
const config = yaml.load(configContent);
await configModifier(config);
await fs.writeFileSync(configFile, yaml.dump(config));
}
async function switchVersion(version) {
const htmlFile = path.join(devTestDirectory, 'index.html');
const content = await fs.readFile(htmlFile);
const replaceString =
version === 'latest'
? '<script src="dist/netlify-cms.js"></script>'
: `<script src="https://unpkg.com/netlify-cms@${version}/dist/netlify-cms.js"></script>`;
await fs.writeFile(
htmlFile,
content.toString().replace(/<script src=".+?netlify-cms.+?"><\/script>/, replaceString),
);
}
module.exports = { copyBackendFiles, updateConfig, switchVersion };