aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/statuses.js9
-rw-r--r--test/unit/specs/modules/statuses.spec.js21
2 files changed, 28 insertions, 2 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 6fe2558c..5e3a373a 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -114,6 +114,15 @@ export const findMaxId = (...args) => {
return (maxBy(flatten(args), 'id') || {}).id
}
+export const prepareStatus = (status) => {
+ if (status.nsfw === undefined) {
+ const nsfwRegex = /#nsfw/i
+ status.nsfw = !!status.text.match(nsfwRegex)
+ }
+
+ return status
+}
+
export const mutations = {
addNewStatuses (state, { statuses, showImmediately = false, timeline }) {
const timelineObject = state.timelines[timeline]
diff --git a/test/unit/specs/modules/statuses.spec.js b/test/unit/specs/modules/statuses.spec.js
index 372ab3ca..1de15e6a 100644
--- a/test/unit/specs/modules/statuses.spec.js
+++ b/test/unit/specs/modules/statuses.spec.js
@@ -1,5 +1,5 @@
import { cloneDeep } from 'lodash'
-import { defaultState, mutations, findMaxId } from '../../../../src/modules/statuses.js'
+import { defaultState, mutations, findMaxId, prepareStatus } from '../../../../src/modules/statuses.js'
const makeMockStatus = ({id, text}) => {
return {
@@ -11,7 +11,24 @@ const makeMockStatus = ({id, text}) => {
}
}
-describe('findMaxId', () => {
+describe('Statuses.prepareStatus', () => {
+ it('sets nsfw for statuses with the #nsfw tag', () => {
+ const safe = makeMockStatus({id: 1, text: 'Hello oniichan'})
+ const nsfw = makeMockStatus({id: 1, text: 'Hello oniichan #nsfw'})
+
+ expect(prepareStatus(safe).nsfw).to.eq(false)
+ expect(prepareStatus(nsfw).nsfw).to.eq(true)
+ })
+
+ it('leaves existing nsfw settings alone', () => {
+ const nsfw = makeMockStatus({id: 1, text: 'Hello oniichan #nsfw'})
+ nsfw.nsfw = false
+
+ expect(prepareStatus(nsfw).nsfw).to.eq(false)
+ })
+})
+
+describe('Statuses.findMaxId', () => {
it('returns the largest id in any of the given arrays', () => {
const statusesOne = [{ id: 100 }, { id: 2 }]
const statusesTwo = [{ id: 3 }]