kopia lustrzana https://github.com/wagtail/wagtail
Move cleanForSlug into its own utils module
This allows us to test it without having to jump through hoops to make the rest of page-editor.js module-friendly, and moving the test module out of client/src/entrypoints means we don't duplicate it into wagtail/admin/static (where the test runner tries to run it again with broken imports)pull/7285/head
rodzic
39e168c574
commit
ac2e07e8c4
|
@ -1,4 +1,5 @@
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
|
import { cleanForSlug } from '../../utils/cleanForSlug';
|
||||||
|
|
||||||
window.halloPlugins = {};
|
window.halloPlugins = {};
|
||||||
|
|
||||||
|
@ -184,26 +185,6 @@ function InlinePanel(opts) { // lgtm[js/unused-local-variable]
|
||||||
}
|
}
|
||||||
window.InlinePanel = InlinePanel;
|
window.InlinePanel = InlinePanel;
|
||||||
|
|
||||||
function cleanForSlug(val, useURLify) {
|
|
||||||
if (useURLify) {
|
|
||||||
// URLify performs extra processing on the string (e.g. removing stopwords) and is more suitable
|
|
||||||
// for creating a slug from the title, rather than sanitising a slug entered manually
|
|
||||||
// eslint-disable-next-line no-undef, new-cap
|
|
||||||
const cleaned = URLify(val, 255, window.unicodeSlugsEnabled);
|
|
||||||
|
|
||||||
// if the result is blank (e.g. because the title consisted entirely of stopwords),
|
|
||||||
// fall through to the non-URLify method
|
|
||||||
if (cleaned) {
|
|
||||||
return cleaned;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// just do the "replace"
|
|
||||||
if (window.unicodeSlugsEnabled) {
|
|
||||||
return val.replace(/\s/g, '-').replace(/[&/\\#,+()$~%.'":`@^!*?<>{}]/g, '').toLowerCase();
|
|
||||||
}
|
|
||||||
return val.replace(/\s/g, '-').replace(/[^A-Za-z0-9\-_]/g, '').toLowerCase();
|
|
||||||
}
|
|
||||||
window.cleanForSlug = cleanForSlug;
|
window.cleanForSlug = cleanForSlug;
|
||||||
|
|
||||||
function initSlugAutoPopulate() {
|
function initSlugAutoPopulate() {
|
||||||
|
@ -425,7 +406,3 @@ window.updateFooterSaveWarning = (formDirty, commentsDirty) => {
|
||||||
updateWarnings();
|
updateWarnings();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (typeof module !== 'undefined' && module.exports) {
|
|
||||||
module.exports.cleanForSlug = cleanForSlug;
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
export function cleanForSlug(val, useURLify) {
|
||||||
|
if (useURLify) {
|
||||||
|
// URLify performs extra processing on the string (e.g. removing stopwords) and is more suitable
|
||||||
|
// for creating a slug from the title, rather than sanitising a slug entered manually
|
||||||
|
// eslint-disable-next-line no-undef, new-cap
|
||||||
|
const cleaned = URLify(val, 255, window.unicodeSlugsEnabled);
|
||||||
|
|
||||||
|
// if the result is blank (e.g. because the title consisted entirely of stopwords),
|
||||||
|
// fall through to the non-URLify method
|
||||||
|
if (cleaned) {
|
||||||
|
return cleaned;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// just do the "replace"
|
||||||
|
if (window.unicodeSlugsEnabled) {
|
||||||
|
return val.replace(/\s/g, '-').replace(/[&/\\#,+()$~%.'":`@^!*?<>{}]/g, '').toLowerCase();
|
||||||
|
}
|
||||||
|
return val.replace(/\s/g, '-').replace(/[^A-Za-z0-9\-_]/g, '').toLowerCase();
|
||||||
|
}
|
|
@ -1,12 +1,6 @@
|
||||||
window.$ = require('../../../../wagtail/admin/static_src/wagtailadmin/js/vendor/jquery-3.5.1.min');
|
|
||||||
// eslint-disable-next-line no-unused-expressions
|
// eslint-disable-next-line no-unused-expressions
|
||||||
require('../../../../wagtail/admin/static_src/wagtailadmin/js/vendor/urlify').default;
|
require('../../../wagtail/admin/static_src/wagtailadmin/js/vendor/urlify').default;
|
||||||
|
import { cleanForSlug } from './cleanForSlug';
|
||||||
window.comments = {
|
|
||||||
getContentPath: jest.fn(),
|
|
||||||
};
|
|
||||||
|
|
||||||
const cleanForSlug = require('./page-editor').cleanForSlug;
|
|
||||||
|
|
||||||
describe('page-editor tests', () => {
|
describe('page-editor tests', () => {
|
||||||
describe('cleanForSlug without unicode slugs enabled', () => {
|
describe('cleanForSlug without unicode slugs enabled', () => {
|
Ładowanie…
Reference in New Issue