Faits :
A.
Le 7 avril 2014, M._ (ci-après: l'employée) a signé un contrat de mission avec X._ SA (ci-après: l'employeuse) pour une durée maximale de trois mois; l'employée était affectée à l'entreprise A._ SA (ci-après: A._); le salaire horaire brut s'élevait à 25 fr.59 et l'horaire de travail représentait 173,33 heures par mois. Le contrat a été modifié en date du 13 janvier 2015, le salaire horaire brut passant à 25 fr.62. Il a été reconduit le 19 janvier 2015, pour une durée indéterminée à partir du 7 juillet 2014.
Par courrier du 10 mars 2015, l'employeuse a signifié à l'employée la fin de sa mission intérimaire auprès de A._ pour le 11 avril 2015.
Par contrat de mission du 31 mars 2015, l'employeuse a affecté l'employée auprès de l'entreprise B._ SA (ci-après: B._) à compter du 1 er avril 2015 pour une durée maximale de trois mois avec un salaire horaire brut de 24 fr.89.
Un peu plus tôt, soit le 20 mars 2015, l'employée est tombée enceinte. Selon ses déclarations en procédure, elle a appris sa grossesse le 13 avril 2015 - jour où elle s'est rendue chez le Dr C._ - et l'a annoncée le même jour; le lendemain, son supérieur hiérarchique au sein de B._ lui a fait savoir que son travail "n'allait pas" et qu'elle devait rentrer.
L'employeuse a résilié le contrat de mission du 31 mars 2015 par courrier du 13 avril 2015 avec effet au 16 avril 2015.
Par courriers des 29 mai et 25 juin 2015, l'employée a mis l'employeuse en demeure de la réintégrer de suite à son poste de travail.
La Caisse publique de chômage du canton du Jura a alloué à l'employée des indemnités de chômage à partir du 16 avril 2015. Par courrier du 23 juillet 2015, elle a annoncé sa volonté de se subroger à l'employée dans ses droits au salaire jusqu'à concurrence des indemnités versées.
L'enfant N._ est née le 17 décembre 2015.
B.
En date du 3 février 2016, M._ a saisi le Conseil de prud'hommes du Tribunal de première instance du canton du Jura d'une demande tendant au paiement par X._ SA de 22'771 fr.15, somme réduite lors de l'audience des débats à 21'624 fr.85 bruts, avec intérêts.
Par demande du 18 février 2016, la caisse de chômage a conclu au paiement par X._ SA de 19'525 fr.60 en sa faveur.
Par décision du 30 juin 2016, le Conseil de prud'hommes a condamné l'employeuse à verser à l'employée la somme brute de 21'624 fr.85 avec intérêts et à la caisse de chômage la somme nette de 19'525 fr.60. Analysant la résiliation du 10 mars 2015 à la lumière de l'art. 336c al. 2 CO, il a retenu en substance que le délai de congé avait été suspendu dès le moment où l'employée était tombée enceinte et que celle-ci avait droit au paiement de son salaire jusqu'au 31 mai 2016 sur la base du salaire horaire convenu dans le premier contrat de mission, sous déduction du montant correspondant aux indemnités de chômage versées.
Par arrêt du 26 avril 2017, la Cour civile du Tribunal cantonal du canton du Jura a rejeté l'appel interjeté par l'employeuse.
C.
X._ SA exerce un recours en matière civile. Elle demande au Tribunal fédéral d'annuler l'arrêt cantonal.
Dans sa réponse, M._ (intimée 1) conclut au rejet du recours.
La caisse de chômage (intimée 2) a renoncé à se déterminer.
La cour cantonale propose le rejet du recours.
La recourante a déposé une réplique, suivie d'une duplique de l'intimée 1.

Considérant en droit :
1.
1.1. Dirigé contre une décision finale (art. 90 LTF) rendue sur appel par le tribunal supérieur du canton (art. 75 LTF) dans une affaire de contrat de travail (art. 72 al. 1 LTF) dont la valeur litigieuse est supérieure à 15'000 fr. (art. 74 al. 1 let. a LTF) et interjeté en temps utile (art. 100 al. 1 LTF) par l'employeuse qui a succombé dans ses conclusions libératoires (art. 76 al. 1 LTF), le recours en matière civile est recevable au regard de ces dispositions.
1.2. Le recours en matière civile des art. 72 ss LTF étant une voie de réforme (art. 107 al. 2 LTF), le recourant ne peut en principe pas se borner à demander l'annulation de la décision attaquée et le renvoi de la cause à l'instance cantonale; il doit également, sous peine d'irrecevabilité, prendre des conclusions sur le fond du litige. Le Tribunal fédéral ne peut en effet aller au-delà des conclusions des parties (art. 107 al. 1 LTF). Cette règle souffre quelques exceptions. Parmi celles-ci, la pratique réserve le cas où la motivation du recours fait clairement apparaître en quoi l'arrêt attaqué doit être modifié (arrêts 4A_371/2016 du 14 octobre 2016 consid. 2.1; 4A_12/2014 du 6 mars 2014 consid. 2), soit en particulier lorsque les créances pécuniaires ne sont pas chiffrées, mais que la somme à allouer est d'emblée reconnaissable au regard de la motivation du recours ou de la décision attaquée (<ref-ruling> consid. 2 p. 236 s.; <ref-ruling> consid. 1.4.2 p. 415).
Dans les conclusions figurant en tête de son écriture, la recourante se limite à demander l'annulation de l'arrêt attaqué. En toute fin de mémoire, elle clôt toutefois son argumentation en relevant que c'est à tort que la cour cantonale a adjugé les conclusions de l'employée. La question de savoir si une telle motivation permet de renoncer à l'exigence de conclusions réformatoires peut demeurer indécise, car le recours se révèle de toute manière mal fondé, comme on va le voir ci-après.
2.
2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (art. 105 al. 1 LTF). Relèvent de ces faits tant les constatations relatives aux circonstances touchant l'objet du litige que celles concernant le déroulement de la procédure conduite devant l'instance précédente et en première instance, c'est-à-dire les constatations ayant trait aux faits procéduraux (<ref-ruling> consid. 1.3.1 et les références). Le Tribunal fédéral ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'art. 95 LTF (art. 105 al. 2 LTF). "Manifestement inexactes" signifie ici "arbitraires" (<ref-ruling> consid. 1.3.1 p. 253; <ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (art. 97 al. 1 LTF).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'art. 106 al. 2 LTF (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2 p. 90). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 p. 18).
En l'espèce, la cour de céans mènera son raisonnement sur la base de l'état de fait contenu dans la décision attaquée et ne tiendra pas compte des faits évoqués par la recourante qui s'écartent de ceux retenus par les juges jurassiens sans qu'elle se plaigne d'arbitraire (art. 9 Cst.).
2.2. Le recours en matière civile peut être exercé pour violation du droit fédéral (art. 95 let. a LTF), y compris le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313). Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Il n'est donc limité ni par les arguments soulevés dans le recours, ni par la motivation retenue par l'autorité précédente; il peut admettre un recours pour un autre motif que ceux qui ont été invoqués et il peut rejeter un recours en adoptant une argumentation différente de celle de l'autorité précédente (<ref-ruling> consid. 1.4; <ref-ruling> consid. 1.4 p. 400). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (art. 108 al. 1 let. b LTF), le Tribunal fédéral n'examine en principe que les griefs invoqués, sauf en cas d'erreurs juridiques manifestes. Il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 2; <ref-ruling> consid. 2; <ref-ruling> consid. 1.3).
3.
D'après les constatations déterminantes selon l'art. 105 al. 1 LTF, les parties ont conclu, le 7 avril 2014, un contrat portant sur une mission de l'employée auprès de A._ d'une durée maximale de trois mois et l'ont reconduit par la suite sous forme de contrat de durée indéterminée à partir du 7 juillet 2014. L'employeuse a résilié ce contrat le 10 mars 2015 pour l'échéance du 11 avril 2015. L'employée est tombée enceinte le 20 mars 2015, soit après la résiliation mais avant le terme du délai de congé.
Selon l'art. 336c al. 2 CO, si le congé a été donné avant l'une des périodes désignées à l'alinéa précédent - parmi lesquelles la période de grossesse et les seize semaines suivant l'accouchement (art. 336c al. 1 let. c CO) - et si le délai de congé n'a pas expiré avant cette période, ce délai est suspendu et ne continue à courir qu'après la fin de la période. La cour cantonale a considéré que les effets de la résiliation du 10 mars 2015 avaient été reportés conformément aux règles précitées, de sorte que c'était à bon droit que l'employée prétendait au paiement de 21'624 fr.85 bruts et la caisse de chômage au paiement de 19'525 fr.60 nets.
A juste titre, la recourante ne remet pas en cause l'application de l'art. 336c CO à raison de la qualité de travailleuse temporaire de l'employée (sur cette question: arrêt 4C.356/2004 du 7 décembre 2004 consid. 2.3), du dies a quo de la période de protection (<ref-ruling> consid. 2.3 p. 24) ou du fait que l'employée a annoncé sa grossesse après la fin du délai de congé (sur l'impact de cette circonstance, cf. <ref-ruling> consid. 3 p. 355 s.). Elle soulève deux griefs à l'encontre de l'arrêt cantonal.
3.1. En premier lieu, la recourante considère qu'à partir du moment où l'intimée 1 a débuté une nouvelle mission auprès de B._, le 1 er avril 2015, elle ne pouvait plus se prévaloir de la protection de l'art. 336c CO; l'acceptation de cette mission équivaudrait à un accord tacite sur la fin des rapports de travail précédents. En somme, l'employeuse fait valoir que l'employée aurait renoncé au bénéfice de la suspension du délai de congé pendant la période de protection de l'art. 336c al. 1 let. c CO par acte concluant ("accord tacite") puisqu'elle a accepté un nouveau travail et intégré un nouveau poste.
Il faut donc se pencher sur la portée du contrat de mission signé par l'intimée le 31 mars 2015 et de la prise d'emploi auprès de B._ le 1 er avril 2015.
3.1.1. Savoir si un comportement donné doit être compris comme une renonciation à un droit se juge, à défaut d'intention avérée de son auteur, selon le principe de la confiance. Il s'agit de rechercher comment il pouvait être compris de bonne foi en fonction de l'ensemble des circonstances (interprétation objective). Le fardeau de la preuve des faits permettant d'admettre une renonciation du travailleur à des droits incombe à l'employeur (art. 8 CC). Une telle renonciation ne saurait toutefois se concevoir qu'en rapport avec des droits dont l'employé se savait titulaire ou, à tout le moins, envisageait l'acquisition comme une possibilité (par analogie, s'agissant de la quittance pour solde de comptes, cf. <ref-ruling> consid. 3f p. 47; <ref-ruling> consid. 1 p. 45; arrêt 4C.72/2003 du 25 juin 2003 consid. 4, non publié in <ref-ruling>).
3.1.2. En l'espèce, la cour cantonale retient en fait que l'employée a déclaré avoir appris sa grossesse le 13 avril 2015, alors que la recourante admettait - on ne sait trop par quel biais - avoir connu cette circonstance quelques jours auparavant. Il est en tout cas constant que l'intimée 1 n'avait pas connaissance de son état lorsqu'elle a conclu le contrat de mission du 31 mars 2015 et intégré l'entreprise B._ le 1 er avril 2015. La recourante est d'ailleurs la première à affirmer - certes à l'appui de son grief relatif à l'art. 341 CO dont il sera question ci-après - que l'employée ignorait sa grossesse à ce moment-là. L'employeuse ne prétend ainsi pas qu'il existât une volonté de la part de l'intimée 1 de renoncer à la protection que lui confère l'art. 336c CO. L'attitude de l'employée ne saurait davantage avoir été comprise de bonne foi comme telle par l'employeuse. Celle-ci concède elle-même qu'elle n'avait pas connaissance de la grossesse avant le 10 avril 2015. Elle ne pouvait dès lors raisonnablement percevoir le comportement consistant pour l'employée à accepter une nouvelle mission et intégrer le nouveau poste qui lui était assigné auprès de B._ comme la volonté affichée de renoncer aux droits découlant de sa grossesse, alors ignorée par tous les protagonistes. L'employeuse ne prétend d'ailleurs pas le contraire.
Dans la foulée, la recourante reproche à la cour cantonale de ne pas s'être prononcée sur son argument lié au fait que l'employée devait invoquer l'erreur essentielle si elle entendait invalider l'accord tacite prétendu, ce qu'elle n'aurait pas fait. Cela étant, comme la cour cantonale n'a pas admis l'existence d'un tel accord, la question d'une éventuelle invalidation pour vice du consentement ne se posait pas. Il ne saurait donc y avoir violation du droit d'être entendu de l'employeuse.
3.2. Dans un second grief, la recourante fait valoir que l'art. 341 al. 1 CO n'est pas applicable, contrairement à ce que la cour cantonale a admis.
3.2.1. Les juges précédents ont fondé leur raisonnement à la fois sur l'absence d'accord tacite de l'employée pour mettre fin à la période de protection découlant de l'art. 336c al. 1 let. c CO et sur la contrariété d'un tel accord - à supposer réalisé - avec l'art. 341 CO. L'arrêt attaqué repose ainsi sur une double motivation, même si l'argument relatif à la non-connaissance par l'employée de sa grossesse au moment déterminant tient en une phrase et qu'une place plus large est dévolue au second des arguments cités.
3.2.2. Selon l'art. 341 al. 1 CO, le travailleur ne peut pas renoncer, pendant la durée du contrat et durant le mois qui suit la fin de celui-ci, aux créances résultant de dispositions impératives de la loi ou d'une convention collective. Comme l'intimée 1 n'a pas renoncé aux droits découlant de l'art. 336c CO, il est inutile de se demander si une hypothétique renonciation serait valable ou non au regard de l'art. 341 al. 1 CO, lequel n'entre pas en considération. Il doit être donné raison à la recourante sur ce point, sans que cela ne modifie en rien l'issue du litige.
En effet, l'art. 336c al. 2 CO scelle à lui seul le sort du recours. L'employée est tombée enceinte après la notification de la résiliation du 10 mars 2015 et, conformément à cette disposition, le délai de congé était suspendu jusqu'au terme de la période de protection désignée à l'art. 336c al. 1 let. c CO. Le droit au salaire pendant ce laps de temps suppose que l'employée a exécuté sa prestation de travail, offert en vain ses services (art. 324 CO) ou, pour un temps limité, s'en est trouvée empêchée ou alors en droit de s'en dispenser (art. 324a CO). La recourante n'élève aucun grief à ce sujet. Elle ne conteste pas non plus les montants dus à l'employée et à la caisse de chômage légalement subrogée (art. 29 al. 2 LACI), confirmés par l'autorité cantonale. La cour de céans n'a dès lors pas à examiner le bien-fondé de l'arrêt attaqué sur ces points.
4.
Sur le vu de ce qui précède, le recours ne peut être que rejeté dans la mesure où il est recevable.
La recourante, qui succombe, prendra en charge les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera arrêté selon le barème ordinaire dès lors que la valeur litigieuse déterminante, toutes prétentions de l'employée et de la caisse de chômage confondues (art. 52 LTF), dépasse le plafond de 30'000 fr. fixé à l'art. 65 al. 4 let. c LTF. Elle versera également des dépens à l'intimée 1 (art. 68 al. 1 et 2 LTF), mais non à l'intimée 2 (art. 68 al. 2 et 3 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée M._ une indemnité de 2'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour civile du Tribunal cantonal du canton du Jura.
Lausanne, le 30 avril 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
La Greffière : Godat Zimmermann