mirror of https://github.com/zulip/zulip.git
55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
let last_issued_stream_id = 20000;
|
|
|
|
const get_stream_id = () => {
|
|
last_issued_stream_id += 1 + Math.floor(Math.random() * 10);
|
|
return last_issued_stream_id;
|
|
};
|
|
|
|
exports.make_stream = (opts = {}) => {
|
|
// Since other fields are computed from these, we need to
|
|
// pull these out of opts early.
|
|
const stream_id = opts.stream_id ?? get_stream_id();
|
|
const name = opts.name ?? `stream-${stream_id}`;
|
|
|
|
const default_channel = {
|
|
audible_notifications: false,
|
|
/* BUG: This should always be a group ID. But it's annoying to
|
|
* fix without assuming groups exist in the data set. */
|
|
can_remove_subscribers_group: 0,
|
|
color: "abcd12",
|
|
/* This is rarely going to be the case, but a valid possibility. */
|
|
creator_id: null,
|
|
date_created: Date.now(),
|
|
description: `Description of ${name}`,
|
|
desktop_notifications: false,
|
|
email_address: "channel-email-address@example.com",
|
|
email_notifications: false,
|
|
/* This will rarely be the case, but is a valid possibility*/
|
|
first_message_id: null,
|
|
history_public_to_subscribers: true,
|
|
invite_only: false,
|
|
is_announcement_only: false,
|
|
is_muted: false,
|
|
is_web_public: false,
|
|
message_retention_days: null,
|
|
name,
|
|
newly_subscribed: false,
|
|
pin_to_top: false,
|
|
previously_subscribed: false,
|
|
push_notifications: false,
|
|
render_subscribers: false,
|
|
rendered_description: `<p>Description of ${name}</p>`,
|
|
stream_id,
|
|
/* STREAM_POST_POLICY_EVERYONE */
|
|
stream_post_policy: 1,
|
|
stream_weekly_traffic: 0,
|
|
/* Most tests want to work with a channel the current user is subscribed to. */
|
|
subscribed: true,
|
|
wildcard_mentions_notify: false,
|
|
};
|
|
|
|
return {...default_channel, ...opts};
|
|
};
|